我正在尝试执行this jnlp应用程序。 但是,我一直收到这个安全例外:
java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:399)
at java.lang.Class.newInstance0(Class.java:370)
at java.lang.Class.newInstance(Class.java:322)
at com.sun.javafx.applet.FXApplet2.init(FXApplet2.java:63)
at com.sun.deploy.uitoolkit.impl.fx.FXApplet2Adapter.init(FXApplet2Adapter.java:207)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.net.useSystemProxies" "write")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:364)
at java.security.AccessController.checkPermission(AccessController.java:560)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.System.setProperty(System.java:783)
at ensemble.Ensemble2.<clinit>(Ensemble2.java:77)
... 10 more
我尝试更改Java控制面板(OSX 10.8.3)中的安全设置,但它们似乎已禁用,我无法修改它们(我可以检查“在浏览器中启用Java内容”选项,但它单击“应用”时重置。如下图所示:
是否存在绕过Java安全管理器并能够执行jnlp应用程序的另一种机制?
更新
重新安装Java后,我终于能够更改Java控制面板中的安全选项(我没有做任何特别的事情,只是从头开始重新安装)。不幸的是,当我执行jnlp application时,它会在没有显示任何错误的情况下静静地死掉。这个问题可能与我使用jdk 1.8(因为jnlp应用程序需要javafx)这个事实有关,而且它只是一个预览版本(而OSX似乎现在看起来并不像Java那么多......),它是我最好的猜测,但我不能完全确定。
答案 0 :(得分:0)
可能的原因:
<security><all-permissions/></security>