yan*_*ite 5 java windows jvm java-11
操作系统:Windows 10 Java:11.0.1
我设置环境变量
set JAVA_HOME=<null>
set CLASSPATH=<null>
set PATH='d:\java\jdk-11.0.1\bin
Run Code Online (Sandbox Code Playgroud)
正在运行的 cmd
版本
正在运行的 cmd
java -version
Run Code Online (Sandbox Code Playgroud)
返回此错误:
虚拟机初始化时出错
java.lang.IllegalArgumentException:空字符集名称
在 java.nio.charset.Charset.lookup(java.base/Charset.java:455)
在 java.nio.charset.Charset.defaultCharset(java.base/Charset.java:608)
在 java.lang.StringCoding.decode(java.base/StringCoding.java:316)
在 java.lang.String.(java.base/String.java:592)
在 java.lang.String.(java.base/String.java:614)
在 java.lang.System.initProperties(java.base/Native Method)
在 java.lang.System.initPhase1(java.base/System.java:1942)
我试试
java -Dfile.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)
同样的错误
我的 jdk8 没问题
我的 jdk 11 在公司电脑上没问题
什么?
小智 0
在安装了 gb18030 支持包的简体中文 Windows 中可以重现此问题。我用进程监视器跟踪它,看到进程以一些缓冲区溢出错误结束,同时加载名为 simsun gb18030 的字体文件(类似这样,我记不太清楚了。)这个问题存在于 JDK 11 之后的任何版本的 hotspot jvm 中。但对于j9 vm来说,没有问题。