我正在尝试将 Java SDK 8 工具(从 debian backports repo 安装)设置为默认值。
# update-java-alternatives --list
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64
# update-java-alternatives --set /usr/lib/jvm/java-1.8.0-openjdk-amd64
update-alternatives: error: no alternatives for mozilla-javaplugin.so
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
嗯,除了那个错误(我相信这只是一个警告,根据https://askubuntu.com/questions/141791/is-there-a-way-to-update-all-java-related-alternatives。如果没有,我不知道如何解决这个问题,因为我看不到适用于 jdk8 的 icedtea 插件),这应该可以解决问题,对吧?
但许多 Java 工具仍然指向 Java 7:
# update-alternatives --get-selections | grep java
appletviewer manual /usr/lib/jvm/java-8-openjdk-amd64/bin/appletviewer
extcheck auto /usr/lib/jvm/java-7-openjdk-amd64/bin/extcheck
idlj auto /usr/lib/jvm/java-7-openjdk-amd64/bin/idlj
jar auto /usr/lib/jvm/java-7-openjdk-amd64/bin/jar
jarsigner auto /usr/lib/jvm/java-7-openjdk-amd64/bin/jarsigner
java manual /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
javac auto /usr/lib/jvm/java-7-openjdk-amd64/bin/javac
javadoc auto /usr/lib/jvm/java-7-openjdk-amd64/bin/javadoc
...
怎么回事?坏了吗?
编辑:
解决了这个问题:
for i in `update-alternatives --get-selections | grep java | awk '{print $1}'`; do update-alternatives --config $i; done
这将手动提示您选择每个工具。大约需要一分钟。不过,我想知道是否有更好的方法。
答案1
update-java-alternatives
有选项可以分别更新--jre-headless
、--jre
和--plugin
。
使用
sudo update-java-alternatives --jre-headless --jre --set java-1.8.0-openjdk-amd64
在没有安装任何插件的 Debian Jessie 服务器上为我工作。
答案2
在 Debian 中实现此目的的最简单方法是使用此命令
update-alternatives --config java
然后你会得到如下输出:
*0 /usr/lib/jvm/java-8-openjdk-amd64/bin/java auto mode
1 /usr/lib/jvm/jdk1.7.0/bin/java manual mode
然后,您可以通过输入索引号来更改默认选择(标有“*”)。例如,您选择“1”以使用 Java 7 作为默认 JVM。您可以再次运行该命令以检查更改。
希望能帮助到你。
答案3
在 ubuntu 中,JDK1.8 不会默认安装。当你列出 java 替代方案时
$ update-java-alternatives -l
java-1.11.0-openjdk-amd64 1101 /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
java-7-oracle 1082 /usr/lib/jvm/java-7-oracle
java-1.8.0-openjdk-amd64
此列表中不是 JDK,而是 JRE。JRE 不包含所有必要的开发工具,如 javac、javadoc 等。您可以验证 bin 目录是否包含这些文件。这就是不注册这些工具的原因。
因此,首先你必须安装 JDK
sudo apt install openjdk-8-jdk
然后改变替代方案
sudo update-java-alternatives -s java-1.8.0-openjdk-amd64
答案4
您必须在下面的文件中将 java home 变量更改为 java 8
'vi /etc/environment'
这种格式
JAVA_HOME- /usr/lib/jvm/java-8-oracle
使用重新加载配置文件
'. /etc/environment'
并确认
echo $JAVA_HOME