亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

小程序。java.lang.reflect.InvocationTargetException

瀏覽:116日期:2024-04-28 11:15:53
如何解決小程序。java.lang.reflect.InvocationTargetException?

好的,現在我們來探究問題的根源。(您仍然可以使用printstacktrace-這也應該已經打印的堆棧跟蹤cause。)。

未簽名的小程序只能訪問有限數量的系統屬性-這些jna屬性不屬于這些屬性。

在未簽名的applet中,無論如何您都無法加載本機庫,因此無法使用JNA(或JNI)。

如果您在applet上簽名(并告訴插件接受簽名),則applet具有使用JNA的必要權利。但是,任何單個運行代碼的權利實際上就是稱為當前代碼的所有方法的權利的交叉點。

從JavaScript調用的Applet方法具有非常有限的權限(因為即使您的瀏覽器甚至具有這種概念,插件也無法真正檢查JavaScript代碼是否具有必需的權限)。

您可以通過包裝代碼的一部分來解決此問題,該代碼部分需要在applet的權限下運行AccessController.doPrivileged(...)。但是首先 (對于JNI / JNA來說很容易),即使是從惡意JavaScript代碼中調用也是如此。

解決方法

我有使用jna指針類的小程序。小程序代碼為:

import com.sun.jna.*;public class Applet1 extends Applet{ public void test() {try { Pointer p = new Memory(73);} catch (Exception e) {e.printStackTrace();} }}

在html代碼中,我以這種方式聲明了applet:

<applet codebase=/pki/ code=Applet1.class archive=/pki/jna-3.2.3.jar id=Applet1 width=100 height=100 ></applet>

當我通過JavaScript調用document.getElementById(“Applet1”)。test()時,會出現java.lang.reflect.InvocationTargetException。我無法在Java類端調用e.getCause(),因為applettry / catch無法捕獲錯誤(我不明白為什么)。但是javascript try / catch捕獲此錯誤。如果移動Pointer p = newMemory(73);線就可以了。問題是這條線。請幫助解決問題。

編輯:如果替換此塊:

try { Pointer p = new Memory(73);} catch (Exception e) { e.printStackTrace();}

try { Pointer p = new Memory(73);} catch (Throwable e) { System.out.println(e.getCause());}

我收到了java.security.AccessControlException:訪問被拒絕(已讀取java.util.PropertyPermissionjna.boot.library.path)

標簽: java
相關文章:
主站蜘蛛池模板: 黄色h网站| 色黄啪啪18周岁以下禁止观看 | 天天草夜夜骑 | 久久精品视频7 | 大陆黄色网 | 欧美日韩色视频 | 无耻三级在线观看 | 性欧美高清理论片 | 美女免费精品高清毛片在线视 | 精品一区二区三区免费毛片爱 | 欧美日韩国产成人综合在线影院 | 亚洲一级大片 | 成人免费小视频 | 一区二区三区四区视频在线 | 91亚洲精品丁香在线观看 | 幸福宝色多多 | 成人日韩视频 | 久久视频免费在线观看 | 国产精品男人的天堂 | 国产真实搭讪系列 | 精品牛牛影视久久精品 | 日本人与黑人xxxx | 欧美日韩顶级毛片www免费看 | 日韩毛片欧美一级a网站 | 国产亚洲精品国产 | 午夜久久久久久网站 | 精品国产欧美另类一区 | 黄视频日本 | 狼人久草| 亚洲 欧美 日韩 在线 | 国产一区二区免费在线 | 大陆一级毛片免费视频观看 | 国产精品麻豆入口 | 一区二区视频在线观看 | 毛片随便看 | 午夜在线成人 | 超级97碰碰碰碰久久久久最新 | 日本人一级大毛片 | 丝袜无码一区二区三区 | 91在线视频免费 | 免费精品国产日韩热久久 |