• java和javac版本不一致


    此博客链接:https://www.cnblogs.com/ping2yingshi/p/14930400.html

    1.问题描述

    window10安装过jdk后,当编译运行java代码时,java和javac的版本不一致。java是1.8.0_181,而javac是16.0.1,如下图所示。

    2.出现原因

    我安装jdk版本是16.0.1的版本,可是在我电脑上还有一个jre1.8.0_181。

    3.解决方案

    1.把path 里%JAVA_HOME%in放在path变量的最前面。(尝试未成功)

    2.在系统环境变量中添加path,并添加JAVA_HOME%in。(尝试成功)

    4.重现java和javac版本不一致问题

    4.1回退到原来的版本

    1.把3中1的%JAVA_HOME%in不放在path变量的最前面,放到原来倒数第二的位置。

    2.删除path中添加的JAVA_HOME%in。

    3.在控制台中输入java和javac,java和javac的版本是一样的,不是预期结果。实验失败。

     4.2重新下载两个版本的jdk,重现java和javac版本不一致问题

    1.在官网上下载1.8.0版本的jdk。

    2.解压安装jdk。详情参见博客:https://www.cnblogs.com/ping2yingshi/p/14930839.html 

    3.在环境变量中分别配置两个版本jdk的路径。

     4.手动切换不同版本的jdk,在命令行中查看java和javac的版本,发现切换后的java和javac版本是和配置的JAVA_HOME中的jdk版本是致的,没有出现java和javac版本不一致问题。实验失败。

     

    4.3请教师妹

    4.3.1重现问题

    师妹在自己电脑上,先安装了jre,然后安装了jdk,先把我的问题重现了,然后解决这个问题,最后又重现了问题。

    4.3.2我本人电脑重现问题

    过程

    1.师妹怀疑我C盘里有java.exe,先让我在C:WindowsSystem32找java.exe,但是在我电脑的C:WindowsSystem32没有找到java.exe。

    2.对比我和师妹的环境变量,发现我电脑的系统环境中没有path。

    3.经过在c盘搜索java.exe文件,虽然在c盘的某个目录下找到了,但是师妹认为这不是我们需要的版本。

    4.重新下载一个jre,观察默认安装路径,发现默认安装路径还是在C:WindowsSystem32下。

     

     5.在命令行输入where java,显示不是内部命令。而且此时的java和javac版本是一样的。(这里不是在C:WindowsSystem32下输入的命令)

     6.到system32的路径下输入where java,显示了java命令所在目录。

     7.再次查看java和javac的版本,发现Java和javac版本不一致。

    8.在电脑的系统变量中配置path路径,没有在C:WindowsSystem32下查看Java和Javac版本。发现两个版本不一致。

    9.将path变量中的顺序更改,将%JAVA_HOME%in和%JAVA_HOME%jrein放在C:Windowssystem32之前,如下图所示。

    10.再次查看java和Javac版本,发现Java和javac版本是一样的。

     4.4总结

    4.4.1java和javac版本不一样的原因

    出现Java和Javac版本不一样的原因是,系统会先到path路径下按顺序找相应文件,而jre1.8.0是在系统所在的路径下,被优先搜索到,所以使用了C盘下的jre。

    4.4.2不能重现问题的原因

    我不能重现java和javac版本不一样问题的原因是,当我在系统环境变量下添加了path路径,优先搜索D盘下的jre。后来不知道什么操作把C盘下的java.exe等可执行文件删除了,所以再次删除path路径后,执行命令,C盘下已经不存在java.exe等可执行文件了,然后去搜索了D盘下的jre可执行文件。

     

    出来混总是要还的
  • 相关阅读:
    Field client in com.rachel.web.ConsumerController required a bean of type 'org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient' that could not be found.
    MySQl创建用户和授权
    MySQL之索引原理与慢查询优化
    MySQL之视图、触发器、事务、存储过程、函数
    Navicat工具、pymysql模块
    MySQL之多表查询
    MySQL之单表查询
    MySQL行(记录)的详细操作
    MySQL的库表详细操作
    MySQL数据库初识
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/14930400.html
Copyright © 2020-2023  润新知