Linux 更新替代:警告:/etc/alternatives/java 悬空

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/17609083/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-07 00:14:32  来源:igfitidea点击:

update-alternatives: warning: /etc/alternatives/java is dangling

linuxubuntujavaopenjdk

提问by rachana

I am facing the problem while running the java program from command line. I have openjdk-6-jdk installed in my linux system and still shows the error relates with the openjdk-7-jdk.
Initially i have jdk 7 installed in my system but ater i have removes it but still facing problem while running the application.

我在从命令行运行 java 程序时遇到了这个问题。我的 linux 系统中安装了 openjdk-6-jdk,但仍然显示与 openjdk-7-jdk 相关的错误。
最初我在我的系统中安装了 jdk 7,但后来我删除了它,但在运行应用程序时仍然遇到问题。

after running the cammand

运行命令后

sudo update-alternatives --config java

it shows warning as follows

它显示如下警告

update-alternatives: warning: /etc/alternatives/java is dangling,it will be updated with best choice.
There is only one alternative in link group java: /usr/lib/jvm/java-7-openjdk/jre/bin/javaNothing to configure.

update-alternatives:warning: /etc/alternatives/java is dangling,它将以最佳选择进行更新。
链接组 java 中只有一种选择:/usr/lib/jvm/java-7-openjdk/jre/bin/javaNothing to configure。

what should I do?

我该怎么办?

采纳答案by user8658912

Assuming you installed the OpenJDK6 with:

假设您安装了 OpenJDK6:

sudo apt-get install openjdk-6-jdk

In Ubuntu 64 bit, make sure the paths are valid for your installation (change if using 32bit version):

在 Ubuntu 64 位中,确保路径对您的安装有效(如果使用 32 位版本,请更改):

/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java

/usr/lib/jvm/java-6-openjdk-amd64/bin/javac

Setup update-alternatives:

设置更新替代方案:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-6-openjdk-amd64/bin/javac" 1

sudo update-alternatives --set java /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/java-6-openjdk-amd64/bin/javac

Alternatively, make sure the correct version is checked for both Java and compiler:

或者,确保为 Java 和编译器检查了正确的版本:

sudo update-alternatives --config java
sudo update-alternatives --config javac

List the installed Java alternatives with:

列出已安装的 Java 替代品:

sudo update-alternatives --list java
sudo update-alternatives --list javac

回答by Guna Sekaran

update java alternatives:

更新java替代品:

sudo update-alternatives --config java

sudo update-alternatives --config javac

回答by The Sun

If you install openjdk 8 in docker. Maybe you need to install "software-properties-common"

如果您在 docker 中安装 openjdk 8。也许你需要安装“software-properties-common”

apt-get update && apt-get install apt-file -y && apt-file update && apt-get install software-properties-common

And then you install openjdk 8 and setup update-alternatives with end number = 3

然后安装 openjdk 8 并设置结束编号 = 3 的 update-alternatives

sudo apt-get install openjdk-8-jdk
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"

update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java" 3
update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-8-openjdk-amd64/bin/javac" 3