将 JDK 8 设置为 Debian 8 上的默认 Java

将 JDK 8 设置为 Debian 8 上的默认 Java

我正在尝试将 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

相关内容