我正在将使用TouchGraph Java库的应用程序转换为applet,但我获得了以下权限异常:
java.lang.ExceptionInInitializerError
at com.touchgraph.graphlayout.TGPanel.<init>(TGPanel.java:153)
at com.touchgraph.graphlayout.GLPanel.<init>(GLPanel.java:99)
...
at myApplet.start(myApplet.java:73)
at sun.applet.AppletPanel.run(AppletPanel.java:464)
at java.lang.Thread.run(Thread.java:637)
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission java.library.path read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
at java.lang.System.getProperty(System.java:667)
at com.touchgraph.graphlayout.TGLayout.<clinit>(TGLayout.java:130)
... 8 more
TGPanel.java 153上的行是TGLayout tgLayout = new TGLayout(this);
,这是applet崩溃的时候。有趣的是,它只是对构造函数的调用,而不是它的任何内容。
applet当前在我的计算机上,调用它的HTML页面也是如此。 HTML文件如下所示:
<HTML>
<HEAD>
<TITLE>Signed Applet Example</TITLE>
</HEAD>
<BODY>
<script src="//www.java.com/js/deployJava.js"></script>
<script>
var attributes = {codebase: '',
code: 'myApplet.class',
archive: 'applet.jar',
width: '800',
height: '600'};
var parameters = {}; // customize per your needs
var version = '1.5'; // JDK version
deployJava.runApplet(attributes, parameters, version);
</script>
</APPLET>
</BODY>
</HTML>
我已经使用我刚刚创建的密钥库(根据here上的说明)签署了我的.jar文件(根据here上的说明),所以我不明白为什么会这样做是任何许可问题。如果有人可以帮我解决那个很棒的问题。