首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下java和javac版本不同(设置用户默认的java版本)解决方法

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

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-22 11:19:38
2.1K0
发布2019-01-22 11:19:38
举报

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

然后,我在命令行中执行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。

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年09月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档