javac和java版本不一致_javac和Java版本之间的不一致

当本地调试代码时遇到javac和java版本不一致的问题,即使java_home配置正确,也可能由于环境变量PATH的设置导致版本混乱。在一台装有多个JDK版本的电脑上,如果PATH中C: WINDOWS system32在%JAVA_HOME%in之前,系统会优先执行JRE中的java.exe,从而显示错误的版本。解决办法是将%JAVA_HOME%in置于PATH变量的最前面,确保java -version和javac -version显示相同版本。
摘要由CSDN通过智能技术生成

d2d308cce55a78b936c9098d9ca98f1b.png

今天,一个小朋友问了一个问题: 当他在本地调试代码时,在编译和运行时存在版本不一致的问题. 显然java_home配置没有问题java版本,为什么会有其他版本?

当时我将仅重现该问题: 首先,我编写了一个简单的java文件. 当然,语法没有问题,编译已通过,但运行时报告错误

9811dddea4429e56a4cf06665f136157.png

8d834b6c687ebe0e2e4b81ae1c1e84e3.png

svg

在这种情况下,让我们看一下版本

62c9b99c80cf46d2b244b473176f9530.png

20160924055523279.png

svg

所以,问题来了,javac版本号11.0.5,java版本号1.8.0_152

为什么?首先让我们看一下java_home的配置,它是jdk1.11.0.5. 1.8.0_152是哪里来的?

file0001.jpeg

因为在此计算机上同时安装了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的版本.

原因已知,如何解决?

解决方案:

592bd00644267cc2c535a695773971e2.png

将%JAVA_HOME%\ bin添加到PATH变量的前面,并执行java -version和javac -version,这两个版本均为11.0.5.

结果:

c24fe68d0b26058d1a6fde8c370c8bb3.png

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/sanxing/article-271685-1.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值