java和javac版本不同_一个诡异的问题-javac 与java 版本不同

729ae454b033799b03cd70bd4abc797d.png

今天突然发现javac 与java的版本不同如下图:

a99fdd313f93c5f96a4b8a67106c5766.png

一个是jdk11的,一个是jdk8的,用jdk11生成.class文件,然后用jdk8去执行,那么就可能出现很多问题这怎么可以呢,必须让它们一致才行!

原因分析:

于是我看了一下我的win 10 系统环境变量的配置:

JAVA_HOME:C:\Program Files\java\jdk-11.0.2

Path:如下:

7d9e43a7cea6e0da6089d0692968ac18.png

发现没有什么问题,bin和lib都是指向了JAVA_HOME配置的jdk11版本,那为什么会出现上面的问题呢?于是陷入了沉思,jdk包我是从官网下下来的,不会出问题,想来想去问题肯定还是出在环境变量上。

如上图的环境变量中发现了:

C:\Program Files (x86)\Common Files\Oracle\Java\javapathC:\ProgramData\Oracle\Java\javapath关于java的路径设置,于是打开所在文件夹:

480f6cecbb87d678208078f7ccb3b5b1.png

ac2f621b0c9bad6e97939dc39188b78d.png

发现两个路径中都有,java.exe 命令肯定和它们有关系。

那么这两个路径是怎么来的呢,查阅了相应的资料发现:

原来C:\ProgramData\Oracle\Java\javapath和C:\Program Files (x86)\Common Files\Oracle\Java\javapath都是因为Java自动更新后自动配置的。并且将它们置顶了,导致自己配置的不被优先使用。

既然分析清楚了问题,我们就来看看处理办法。

处理办法:

将自己配置的路径置顶让其能优先使用。

9e3b7857e3a111c8658180659769388b.png

如上图我的配置,我们测试下效果:

8339dc9be1499d4b12586a9d2085fcbd.png

发现javac 与java的版本一致了,完成目标。

2.删除两个路径或两个路径下的文件。因为我已达到目的,所以没有再去测试,如果也有同样问题的读者可以去试试。

分享所得,方便别人,成就自己,感谢大家!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值