我一直在 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?
答案1
根据这个答案:如何设置默认 Java 版本?
首先尝试提供明确的路径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
答案2
您也需要设置javac
。
sudo update-alternatives --config javac
答案3
我遇到了同样的问题。我安装了 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"
答案4
我猜你的 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
那个又正确链接到/etc/alternatives/java
。