Java 14 有许多新特性。其中之一是在 NullPointerException 中显示详细消息。我安装了 Java 14 并尝试在类下编译和运行,但没有收到任何详细消息。我错过了什么吗?请帮忙。
~/code/demo/temp$ java -version
openjdk version "14" 2020-03-17
OpenJDK Runtime Environment AdoptOpenJDK (build 14+36)
Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.19.0, JRE 14 Mac OS X amd64-64-Bit Compressed References 20200313_47 (JIT enabled, AOT enabled)
OpenJ9 - 0133ba037
OMR - 1c04e0ef9
JCL - a73be60649 based on jdk-14+36)
~/code/demo/temp$ cat Hello.java
public class Hello {
public static void main(String args[]) {
String a = null;
System.out.println(a.length());
}
}
~/code/demo/temp$ javac Hello.java
~/code/demo/temp$ java -XX:+ShowCodeDetailsInExceptionMessages Hello
Exception in thread "main" java.lang.NullPointerException
at Hello.main(Hello.java:4)
我将建议的 -XX:+ShowCodeDetailsInExceptionMessages 标志传递给 java,但没有详细消息。请帮忙。
最佳答案
当前 OpenJ9 does not support JEP 358 :
Extended messages for
NullPointerException
not yet implementedJEP 358: Helpful NullPointerExceptions provides extended messages when a
NullPointerException
is generated by the Java 14 VM and you have enabled the feature. However, be aware that this is not implemented in OpenJ9 at this time.
进度在 this bug 中跟踪
如果要使用此功能,请从adaptopenjdk 下载hotspot 变体。它与您当前的发行版是同一家供应商,因此这只是一个很小的变化。
关于java 14 nullpointerexception 没有详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61042145/