我正在尝试执行这个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 应用程序时,它会默默地死掉而没有显示任何错误。这个问题可能与我使用的是 jdk 1.8(因为 jnlp 应用程序需要 javafx)并且它只是一个预览版本(并且 OSX 这些天似乎不太喜欢 Java...),它是我最好的猜测,但我不能完全确定。