我们有一个使用java 3D API的应用程序。 我知道java 3D将尝试使用机器上可用的任何3D渲染引擎。
示例:最近我们使用带有Java Web Start 10.25.2.16的Windows 8平板电脑,使用JRE版本1.7.0_25-b16 Java HotSpot(TM)客户端VM从客户端获得了下面的堆栈跟踪。
Exception occurred in RenderingErrorListener:java.lang.NullPointerException
at sun.awt.SunToolkit.getSystemEventQueueImplPP(Unknown Source)
at sun.awt.SunToolkit.getSystemEventQueueImplPP(Unknown Source)
at sun.awt.SunToolkit.getSystemEventQueueImpl(Unknown Source)
at java.awt.Toolkit.getEventQueue(Unknown Source)
at java.awt.EventQueue.invokeLater(Unknown Source)
at javax.swing.SwingUtilities.invokeLater(Unknown Source)
我们实现了javax.media.j3d.RenderingError并得到以下消息:
OFF_SCREEN_BUFFER_ERROR:渲染器:创建Canvas3D屏幕外缓冲区时出错 graphicsDevice = Win32GraphicsDevice [screen = 0]
答案 0 :(得分:1)
Java 7u25中的WebStart版本不再将sun.awt.AppContext存储在系统线程组中。它将AppContext存储在主线程上。
因此,属于主线程组的线程组的线程不是没有AppContext的父级或祖父级。
另见:NullPointerException in invokeLater while running through Java Webstart