今天,一个小朋友问了一个问题: 当他在本地调试代码时,在编译和运行时存在版本不一致的问题. 显然java_home配置没有问题java版本,为什么会有其他版本?
当时我将仅重现该问题: 首先,我编写了一个简单的java文件. 当然,语法没有问题,编译已通过,但运行时报告错误
在这种情况下,让我们看一下版本
所以,问题来了,javac版本号11.0.5,java版本号1.8.0_152
为什么?首先让我们看一下java_home的配置,它是jdk1.11.0.5. 1.8.0_152是哪里来的?
因为在此计算机上同时安装了jdk11.0.5和1.8.0_152,并且在PATH变量的配置中,C: \ WINDOWS \ system32目录位于%JAVA_HOME%\ bin之前. 在Windows命令行上执行命令时,首先从当前目录搜索,然后按照PATH设置的路径依次查找命令,JRE安装会将java.exe安装到C: \ WINDOWS \ system32目录,因此java版本,执行java -version在使用该命令时,将在javac -version期间查看jre的版本,并查看jdk的版本.
原因已知,如何解决?
解决方案:
将%JAVA_HOME%\ bin添加到PATH变量的前面,并执行java -version和javac -version,这两个版本均为11.0.5.
结果:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/sanxing/article-271685-1.html