在我的一台工作站计算机上(但不在另一台计算机上)使用Java 1.7.0_40并将任何-D设置(例如-Dmykey=myvalue
)添加到“Java运行时环境设置”的“运行时参数”中运行未签名的代码时,“Java控制面板”将导致以下运行时异常:
java.lang.ClassNotFoundException: appls.XHTMLV9.user.Applet because the class is not signed.
at sun.plugin2.applet.Plugin2ClassLoader.newClassNotFoundException(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
在Java控制台中,我还看到了以前没有见过的以下消息:
cache: Initialize resource manager: com.sun.deploy.cache.ResourceProviderImpl@d0570e
security: --- parseCommandLine converted : -Dmykey=myvalue
into:
[-Dmykey=myvalue]
使用Java 1.7.0_25运行和/或删除命令行标志解决了这个问题,我有另一个工作站,此问题无法重现。 有什么想法吗?
答案 0 :(得分:2)
仅允许安全的系统属性。 见http://download.java.net/jdk8/docs/technotes/guides/jweb/applet/applet_deployment.html#COMMAND_LINE_ARGS 详情。
感谢您的问题,它帮助我解决了我的ClassNotFoundException。