问题
I'm trying to run an applet via a webpage but doing so gives me the error:
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
and I don't understand why. I'm trying to get at several jars with my applet but this is the only one that's causing the problem (at least for the moment). I looked at this similar question, but since I don't have an extra library (unless the applet.class counts which I haven't signed anyway), this doesn't seem to apply here. I looked at Mixing Signed and Unsigned Code, but "Enable - show warning if needed" is clicked, "Trusted-Library: true" is in the MANAFEST file, and I'm running firefox 3.6.24 (as specific for a Linux machine which I have). I'd appreciated your help.
jogl.all.jar's MANAFEST file:
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
回答1:
It looks as if you have not signed the jar (hence the "sandboxed" bit).
Writing trusted Java code that can safely be used by untrusted code is really, really difficult.
回答2:
I had similar issue - the root cause was Java JRE installed as both 32bit and 64bit versions - basically there were 2 separate app entries visible in the "Control Panel/Add or remove programs" list.
Apparently this was confisung my web browser (IE) and/or java plugin. Removing both JRE versions from the system, then installing the latest JRE from scratch solved the problem.
My issue was seen on Java 7u25.
来源:https://stackoverflow.com/questions/14044624/security-exception-attempted-to-to-open-a-sandboxed-jar-as-a-trusted-library