我们最近从Update 21更新到Java 7 Update 25,并且当从rmi线程调用SwingUtilities.isEventDispatchThread()时,现在遇到空指针异常,因为AppContext.getAppContext()返回null.
显示java.lang.NullPointerException在sun.awt.SunToolkit.getSystemEventQueueImplPP(未知来源)在sun.awt.SunToolkit.getSystemEventQueueImplPP(未知来源)在sun.awt.SunToolkit.getSystemEventQueueImpl(未知来源)在java.awt.Toolkit.getEventQueue(来源不明)在了java.awt.EventQueue.isDispatchThread(来源不明)在javax.swing.SwingUtilities.isEventDispatchThread(来源不明)在......在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect .NativeMethodAccessorImpl.invoke(来源不明)在sun.reflect.DelegatingMethodAccessorImpl.invoke(来源不明)在java.lang.reflect.Method.invoke(来源不明)在sun.rmi.server.UnicastServerRef.dispatch(来源不明)在阳光下.rmi.transport.Transport $ 1.run(未知来源)at sun.rmi.transport.Transport $ 1.在太阳下的sun.rmi.transport.tcp.TCPTransport.handleMessages(未知来源)的sun.rmi.transport.Transport.serviceCall(未知来源)的java.security.AccessController.doPrivileged(本地方法)中运行(未知来源). rmi.transport.tcp.TCPTransport $ ConnectionHandler.run0(来源不明)在sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run(来源不明)在java.util.concurrent.ThreadPoolExecutor.runWorker(来源不明)在爪哇. java.lang.Thread.run上的util.concurrent.ThreadPoolExecutor $ Worker.run(未知来源)(未知来源)run0(来源不明)在sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run(来源不明)在java.util.concurrent.ThreadPoolExecutor.runWorker(来源不明)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(来自java.lang.Thread.run的未知来源(未知来源)run0(来源不明)在sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run(来源不明)在java.util.concurrent.ThreadPoolExecutor.runWorker(来源不明)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(来自java.lang.Thread.run的未知来源(未知来源)
此错误仅出现在Web启动时,当我们通过IDE运行我们的应用程序时,它很好.
还有其他人遇到过这个吗?有关AppContext的最新更新中有什么变化的想法吗?
似乎其他人在更新后与AppContext有一些相关的问题:https://forums.oracle.com/message/11077767#11077767
首先,对不起我的英语,这不是我的母语.
我的环境有:
- jre 1.5.0_12(二进制文件)
- jre 1.6.0_17(默认jre)
- jre 1.7.0_45(二进制文件)
我有两种方法可以通过Java Webstart启动应用程序:
1)\\<network filesystem>\javaws-1.5.0_12.exe \\<network filesystem>\urClient-DAP2.jnlp
2)"C:\Program Files\Java\jre1.5.0_12\bin\javaws.exe" "http://some-server.com/EU10.jnlp"
在安装Java 1.7之前,没问题.
但是因为我安装了JRE 1.7(只有二进制文件,并在注册表中注册),所以第二种方式不想下载JAR并执行应用程序.我只有Java启动画面 - "Java Loading"出现然后在大约20秒内消失.
我找到了两个解决方法:
- 禁用或卸载JRE 1.7
- 或者最奇怪的方法:启用java控制台 ....(deployment.console.startup.mode=SHOW)
我被卡住了,这两个变通办法都不可行......
编辑: 在javaws跟踪中我得到了这个例外:
`Exception in thread "javawsApplicationMain" java.lang.NullPointerException
at javax.swing.SwingUtilities.appContextGet(Unknown Source)
at javax.swing.UIManager.getLAFState(Unknown Source)
at javax.swing.UIManager.maybeInitialize(Unknown Source)
at javax.swing.UIManager.getLookAndFeel(Unknown Source)
at com.sun.deploy.util.DeployUIManager.setLookAndFeel(Unknown Source)
at com.sun.javaws.ui.DownloadWindow.buildIntroScreen(Unknown Source)
at com.sun.javaws.Launcher.downloadResources(Unknown Source)
at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown …Run Code Online (Sandbox Code Playgroud)