红联Linux门户
Linux帮助

Linux下java和javac版本不同(设置用户默认的java版本)解决方法

发布时间:2015-09-29 15:44:34来源:linux网站作者:TheOneGIS

我的Ubuntu下安装了OpenJDK和Oracle的JDK,然后我在用户自己的配置文件(~./profile)中设置JAVA_HOME(24到28行)。

Linux下java和javac版本不同(设置用户默认的java版本)解决方法


然后,我在命令行中执行java -version和javac -version发现其版本号不一样。我用which命令判断其java和javc的命令,发现javac其实是/usr/bin/javac下的,再用file查看其属性,发现是/etc/alternatives/javac的一个符号链接。于是,我想起了网上很多使用sudo update-alternatives命令设置默认JDK的方法,其实,该方法的实质就是将你自己安装的JDK中java,javac等命令复制到/etc/alternatives下,这样你执行这些java命令的时候,系统会先在/usr/bin下面去找,/usr/bin下面的java是一个到/etc/alternatives/java的链接,而/etc/alternatives/java是你安装的JDK中的java,所以这样实质上执行的就是你安装的JDK。


弄清楚了原理,解决方案也很简单。直接把/usr/bin下的这些JDK相关的符号链接全部删除(我这里没有删除,而是将其重命名为*.bak)。这样你在命令行输入java的时候,系统在/usr/bin下面找不到,就通过你的用户配置文件,找到你JAVA_HOME里面配置的JDK路径,执行里面的java。

Linux下java和javac版本不同(设置用户默认的java版本)解决方法


重命名这些符号链接以后,重启电脑(是不是一样了)。

Linux下java和javac版本不同(设置用户默认的java版本)解决方法


我这里是因为不同的用户需要使用不同的JDK,如果希望所有用户都使用相同的版本的,可以使用sudo update-alternatives这样的命令去设置。


Ubuntu14.04(Linux)中Java环境配置:http://www.linuxdiyf.com/linux/13591.html

打造Linux三流娱乐环境,二流办公环境,一流Java开发环境:http://www.linuxdiyf.com/linux/13560.html

已经Root并设置好java环境的中文Ubuntu15.04下载:http://www.linuxdiyf.com/linux/13111.html

Ubuntu15.04安装java8的步骤:http://www.linuxdiyf.com/linux/12609.html

Ubuntu中,关于的Java一切:http://www.linuxdiyf.com/linux/12882.html