2

我刚刚将我的计算机(Windows 8、Windows 7 和 OS X Mountain Lion)升级到 Java 7 update 45,我的 Java 小程序不再工作了。我在控制台中收到以下异常:

java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(Unknown Source)
at java.awt.EventQueue.invokeAndWait(Unknown Source)
at org.lwjgl.util.applet.AppletLoader.run(AppletLoader.java:906)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
at org.lwjgl.Sys.createImplementation(Sys.java:124)
at org.lwjgl.Sys.<clinit>(Sys.java:111)
at org.lwjgl.opengl.Display.<clinit>(Display.java:135)
at     com.jme.system.lwjgl.LWJGLDisplaySystem.setVSyncEnabled(LWJGLDisplaySystem.java:109)
at cohort.Utilities.CohortApplet.init(CohortApplet.java:105)
at avc.TackFoot3D.AVC_Applet.init(AVC_Applet.java:167)
at org.lwjgl.util.applet.AppletLoader.switchApplet(AppletLoader.java:1330)
at org.lwjgl.util.applet.AppletLoader$2.run(AppletLoader.java:909)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied     ("java.util.PropertyPermission" "org.lwjgl.util.Debug" "read")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at sun.plugin2.applet.AWTAppletSecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at java.lang.Boolean.getBoolean(Unknown Source)
at org.lwjgl.LWJGLUtil$4.run(LWJGLUtil.java:454)
at org.lwjgl.LWJGLUtil$4.run(LWJGLUtil.java:452)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.LWJGLUtil.getPrivilegedBoolean(LWJGLUtil.java:452)
at org.lwjgl.LWJGLUtil.<clinit>(LWJGLUtil.java:265)
... 22 more

我不明白为什么这已经停止工作。显然有一些安全更新已经破坏了它,但我看不到它是什么。所有 jar 都使用相同的 Thawte 证书进行签名。清单文件都包含“Trusted-Library: true”和“Permissions: all-permissions”属性。我也尝试了 codebase 属性,但什么也没做。我已经阅读了更新 45 发行说明,但看​​不到任何会导致这种行为的东西,但显然我遗漏了一些东西。任何人都可以帮忙吗?

4

2 回答 2

1

出现此问题的原因是 Java 7 Update 45 和 LWJGL 安全要求之间的兼容性问题...甚至 LWJGL 网站 ( http://lwjgl.org/applet/ ) 和 Nvidia 网站中的小程序也停止工作...

对于匆忙的用户来说,这个问题的临时解决方法是实际修改 LWJGL 库和小程序加载器,以允许在不考虑安全措施的情况下运行小程序......这是一项麻烦的任务,从安全角度来看是不可靠的

对此的永久修复是等到 LWJGL 发布更新,因为最新更新是“LWJGL 2.9.0”,2013 年 4 月 21 日星期日,在更新 45 之前,即使在下一次 Java 更新中进行此修复后,此问题也可能再次出现2014 年 2 月 14 日,因为它是一个重大更新,可能包含更多安全措施...

于 2013-11-16T10:47:27.087 回答
0

您可能想尝试 u25 - 它使用调用和事件队列破坏了很多东西。换句话说,我认为这可能与此错误有关,而不是更新 45。

通过 Java Webstart 运行时,invokeLater 中的 NullPointerException

于 2013-10-22T19:36:11.987 回答