win7下安装jdk11,配置完之后cmd 检查java出现不能理解的错误。

我需要在本地安装JDK11,电脑是WIN7系统64位,安装完成之后,配置好了JAVA_HOME和path之后,cmd窗口输入JAVA,显示以下的错误提示:

C:\Users\Administrator>java
Error occurred during initialization of VM
java.lang.IllegalArgumentException: Null charset name
        at java.nio.charset.Charset.lookup(java.base/Charset.java:455)
        at java.nio.charset.Charset.defaultCharset(java.base/Charset.java:608)
        at java.lang.StringCoding.decode(java.base/StringCoding.java:316)
        at java.lang.String.<init>(java.base/String.java:592)
        at java.lang.String.<init>(java.base/String.java:614)
        at java.lang.System.initProperties(java.base/Native Method)
        at java.lang.System.initPhase1(java.base/System.java:1942)

非常紧急需要安装成功,请求各位大神帮忙!

环境变量配置的有问题,检查一下

怎么解决的

我也遇到了完全一样的问题,参见这个windows - java jvm 11 don't start - Stack Overflow

内容大概说的是,简中版的Windows安装了GB18030字符集支持,就会出现这个问题;JDK 11之后的版本都会有这个问题

换用JDK 8 应该就没有问题了。

其他解决方案我还不清楚,不用简体中文版的Windows应该能解决问题;可以使用Win 10并尝试启用UTF-8支持,但是又可能会有一些其他问题。

已破案:这个bug好像最近刚被修复,但是二进制build还没发布;

因此现有的解决方案有两种,一种是用JDK 8,另一种是把JVM从Hotspot换成OpenJ9的。

可以在AdoptOpenJDK下载到所需要的JDK:AdoptOpenJDK提供两种JVM可供选择,也就是Hotspot和OpenJ9,选择OpenJ9的版本即可:AdoptOpenJDK - Open source, prebuilt OpenJDK binaries

参考链接:

[BD] Null Charset Name Exception on Synopsys Detect

[JDK-8259705] Failed to launch JVM because of NullPointerException occured on System.props - Java Bug System