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


8

我正在尝试将Java SDK 8工具(从debian backports仓库安装)设置为默认工具。

# 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

嗡嗡声,除了该错误(根据/ubuntu/141791/is-there-a-way-to-update-all-java-related-,我认为这只是警告)替代方案,如果没有,我不知道如何解决这个问题,因为没有IcedTea的插件用于jdk8,我可以看到),这应该做的伎俩,对不对?

但是许多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

这将手动提示您输入每个工具。大约需要一分钟。不过,我想知道是否有更好的方法。

Answers:


5

update-java-alternatives有选择,更新--jre-headless--jre--plugin分别。

使用

sudo update-java-alternatives --jre-headless --jre --set java-1.8.0-openjdk-amd64

在没有安装插件的Debian Jessie服务器上为我工作。


4

在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

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。您可以再次运行命令以检查更改。

希望能帮助到你。


1

对于Linux(例如Debian):

# update-alternatives --config java
# update-alternatives --config javac
# update-alternatives --config javaws

例:

$ sudo update-alternatives --config java
There are 4 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-10-oracle/bin/java             1091      auto mode
* 1            /usr/lib/jvm/java-10-oracle/bin/java             1091      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
  3            /usr/lib/jvm/java-8-oracle/jre/bin/java          1081      manual mode
  4            /usr/lib/jvm/jdk1.7.0_80/bin/java                1         manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java to provide /usr/bin/java (java) in manual mode

0

您必须在以下文件中更改Java 8的java home变量

  'vi /etc/environment'

以这种格式

JAVA_HOME-/ usr / lib / jvm / java-8-oracle

使用以下命令重新加载配置文件

'. /etc/environment'

并以此确认

   echo  $JAVA_HOME
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.