如何设置默认Java版本
我一直在Ubuntu 11.10上使用Java 6,但现在我想更新到版本7.我已经通过PPA安装了版本7, 如此处所述 。 如果我跑
sudo update-alternatives --config java
我得到以下输出:
There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-7-oracle/jre/bin/java 64 auto mode 1 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode * 2 /usr/lib/jvm/java-7-oracle/jre/bin/java 64 manual mode
同样,如果我跑:
sudo update-alternatives --config javac
我得到输出:
Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-7-oracle/bin/javac 64 auto mode 1 /usr/lib/jvm/java-6-sun/bin/javac 63 manual mode * 2 /usr/lib/jvm/java-7-oracle/bin/javac 64 manual mode
因此看起来版本7已经是默认版本。 但如果我跑了
java -version
要么
javac -version
输出表明版本6仍然是默认值。 如何将默认设置为版本7?
根据这个答案: 如何设置默认的Java版本?
尝试提供显式路径以及update-alternatives --install
先update-alternatives --install
,然后运行update-alternatives
进行选择:
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-7-oracle/jre/bin/java" 1 sudo update-alternatives --config java sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-7-oracle/bin/javac" 1 sudo update-alternatives --config javac
你也需要设置javac
。
sudo update-alternatives --config javac
我有同样的问题。 我安装了sun jdk6。 后
sudo update-alternatives --config java sudo update-alternatives --config javac sudo update-alternatives --config javaws
我需要重启。 比它工作。
编辑:我意识到这不足以完成上述步骤。
我还必须编辑环境变量:
sudo nano /etc/environment
并添加(不同的java版本将需要不同的字符串):
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"
插入标识所需路径的编号,然后按Enter键。 在这种情况下插入1。
最后,尝试测试java -version
版本
我想你的java二进制文件指向除/etc/alternatives/java
之外的某个地方。
检查输出: type java
它说/usr/bin/java
吗? 如果是这样,那么检查是否正确指向备选方案:
ls -l /usr/bin/java
应该显示它指向/etc/alternatives/java
。
最后确认/etc/alternatives/java
本身指向java-7:
ls -l /etc/alternatives/java
。
update-alternatives命令仅调整最后一个,并假定默认指向/usr/bin/java
,而/usr/bin/java
又正确链接到/etc/alternatives/java
。
我尝试了上面列出的几乎所有方法,但仍然发现java -version
打印错误的版本,而ls -al /etc/alternatives/java
已经指向正确的版本。
所以我运行: which java
,发现结果显示我从/usr/local/jdk_xxx/bin/java
,然后我删除了这个文件夹并重新启动了终端。 现在java运行良好。
希望它会帮助别人。