使用旅程浏览器项目我在eclipse中设置了一个简单的maven项目,使用页面上提供的依赖项,我尝试运行代码示例(也在页面上提供(
我得到了一个NPE:
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:588)
at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:583)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:582)
at java.desktop/java.awt.Toolkit.getEventQueue(Toolkit.java:1494)
at java.desktop/java.awt.EventQueue.isDispatchThread(EventQueue.java:1086)
at java.desktop/javax.swing.SwingUtilities.isEventDispatchThread(SwingUtilities.java:1493)
at com.codebrig.journey.JourneyBrowserView.<init>(JourneyBrowserView.java:78)
at com.codebrig.journey.JourneyBrowserView.<init>(JourneyBrowserView.java:71)
at JourneyBrowser.main(JourneyBrowser.java:13)
Caused by: java.lang.NullPointerException
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2646)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
at java.base/java.lang.System.loadLibrary(System.java:1870)
at java.desktop/sun.awt.windows.WToolkit$1.run(WToolkit.java:118)
at java.desktop/sun.awt.windows.WToolkit$1.run(WToolkit.java:115)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/sun.awt.windows.WToolkit.loadLibraries(WToolkit.java:114)
at java.desktop/sun.awt.windows.WToolkit.<clinit>(WToolkit.java:129)
... 12 more
有人能解释一下发生了什么吗?为什么在这里,我用java Coretto 11(jdk11.0.7_10(在64位窗口上尝试过,我最初在这里发现了一个错误,与开放JDK中的loadLibray有关,并认为可能是问题所在,我只是没有足够的理解来解决它?
我不确定,但我认为Corretto错误可能是导致问题的原因。如前所述;"上游";;即OpenJDK代码库。这是由于jdk11.0.7中出现的回归,因为修复了另一个问题。显然,修复程序更改了一些JDK内部字段,从而破坏了应用程序代码。正如JDK-8240521所说:
JDK-8231584的后台端口改变了JDK内部字段的处理。问题是,许多第三方应用程序复制粘贴了一个依赖于特定JDK实现的破解。
如果我正确读取了Oracle错误条目,则损坏修复程序的恢复应该在JDK1.0.8中。或者,JDK 11 11.0.7之前的版本不应该有损坏的修复程序。
请告诉我更改Java 11安装是否能解决问题。(如果没有,我会看看我是否能得到匹配的行号。(