我正在尝试通过网页运行applet,但这样做会给我一个错误:
java.lang.reflect.InvocationTargeException
at com.sun.deploy.util.DeployAWTUtil.invokeAndWait(DeployAWTUtil.java:116)
at sun.plugin2.applet.Plugin2Manager.runOnEDT(Plugin2Manager.java:3520)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3051)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1497)
at java.lang.Thread.run(Thread.java:662)
Caused by:java.lang.SecurityExcption: attempted to open sandboxed jar file :/home/daniel/workspace/project/jars/jogl/jogl.all.jar as a Trusted-Library
at com.sun.deploy.security.CPCallbackHandlers$ParentElement.checkResources(CPCallbackHandler.java:358)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.checkResource(DeployURLClassPath:852)
....more stuff I don't want to have to retype but I can if necessary
我不明白为什么。我正试图用我的applet获得几个罐子,但这是导致问题的唯一一个(至少暂时)。我看了this similar question,但由于我没有额外的库(除非applet.class计算我还没有签名),这似乎不适用于此。我查看Mixing Signed and Unsigned Code,但单击“启用 - 显示警告,如果需要”,“Trusted-Library:true”在MANAFEST文件中,我正在运行firefox 3.6.24(特定于Linux机器)我有)。我很感激你的帮助。
jogl.all.jar的MANAFEST文件:
Manifer-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.6.0_24-b07 (Sun Microsystems Inc.)
Specification-Title: Java Bindings for OpenGL API Specification
Specification-Version: 2.0
Specificaiton-Vender: JogAMp Community
Implementation-Title: Java Bindings for OpenGL Runtime Environment
Implementation-Version: 2.0-b23-20110303
Implementation-Branch: rc
Implementation-Commit: bcf5d6ac871a29398b441df617923d3dd2cf35c1
Implementation-Vendor: JogAmp Community
Implementation-URL: http://jogamo.org/
Extension-Name: javax.media.opengl
Implementation-Vendor-Id: com.jogamp
Trusted-Library: true
答案 0 :(得分:3)
看起来好像你没有签署jar(因此是“沙盒”位)。
编写可以被不受信任的代码安全使用的受信任的Java代码真的,真的很难。
答案 1 :(得分:2)
我有类似的问题 - 根本原因是安装了Java JRE作为32位和64位版本 - 基本上在“控制面板/添加或删除程序”列表中可以看到2个单独的应用程序条目。
显然这是我的网络浏览器(IE)和/或java插件的混乱。从系统中删除两个JRE版本,然后从头开始安装最新的JRE解决了这个问题。
我的问题出现在Java 7u25上。