我是靠谱客的博主 怕孤单小丸子,最近开发中收集的这篇文章主要介绍ubuntu系统中java -version所显示的版本与/etc/profile中配置的$JAVA_HOME的关系问题产生推测原因可能的解决方案方案二方案三修改系统默认jdk,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

问题产生

ubuntu 18.04环境下,执行

java -version

发现与/etc/profile中的$JAVA_HOME所设置的java版本不同。

 

推测原因

最近用apt install 安装过ubuntu自带的eclipse,有可能是把一些配置覆盖了。

 

可能的解决方案

方案一

sudo gedit ~/.profile

在末尾加上:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_21

然后保存关闭,使用source更新下
$ source ~/.profile

使用env命令察看JAVA_HOME的值
$ env
如果JAVA_HOME=/usr/lib/jvm/jdk1.7.0_21,说明配置成功。

此前我并没有配置这个文件,我配置的是全局的/ect/profile,java -version也是生效的。暂时忽略。

方案二

据说java -version只显示环境变量中的PATH所指向的第一个含有java执行文件的版本。

打开我的环境变量

vim /etc/environment

内容如下:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

并没有我设置的java路径,/usr/bin,这个,是自动安装的openjdk的java执行文件路径,所以当前的版本显示的是它。

在前面强行插入我的java路径“/opt/jdk1.8.0_201/bin:/opt/jdk1.8.0_201/jre/bin:”,保存

source /etc/enviroment

source 生效。这时再用

java -version

就能够看到我设置的java的版本了。

java version "1.8.0_201"

这种方案能够正常显示版本,但能否正常编译,我无法再测试,因为看到了方案三,并在尝试方案三的时候,不知道怎样退回。留作一个研究课题。

方案三

修改系统默认jdk

此方案来自http://www.cnblogs.com/bluestorm/archive/2012/05/10/2493592.html

# 安装新版本的jdk
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_21/bin/java 300 
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_21/bin/javac 300 

 

执行了上面的两条命令,系统中就有了两个版本的java,下面两条命令,是设置系统默认使用哪个java

$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac


 

输入前面的数字就可以设置默认的java版本。

再次执行java -version

就可以得到自定义的java版本了。

 

但是,这些设置是写在哪里的?就是说执行了update-alternatives以后,哪个文件被修改了?怎样退回去?有待研究。

 

转载于:https://www.cnblogs.com/Sabre/p/10417821.html

最后

以上就是怕孤单小丸子为你收集整理的ubuntu系统中java -version所显示的版本与/etc/profile中配置的$JAVA_HOME的关系问题产生推测原因可能的解决方案方案二方案三修改系统默认jdk的全部内容,希望文章能够帮你解决ubuntu系统中java -version所显示的版本与/etc/profile中配置的$JAVA_HOME的关系问题产生推测原因可能的解决方案方案二方案三修改系统默认jdk所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部