我使用的是 Ubuntu 14.04.5,安装了几个 JDK。当我使用update-java-alternatives
选择 openjdk8 时,它会更新,java
但不会更新javac
,默认为“自动”(在我的情况下,从 openjdk9 中选择 javac)。
grodriguez@ubuntu:~$ update-java-alternatives -l
java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64
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
java-1.9.0-openjdk-amd64 1079 /usr/lib/jvm/java-1.9.0-openjdk-amd64
grodriguez@ubuntu:~$ sudo update-java-alternatives --set java-1.8.0-openjdk-amd64
[sudo] password for grodriguez:
update-alternatives: error: no hay alternativas para mozilla-javaplugin.so
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
grodriguez@ubuntu:~$ java -version
openjdk version "1.8.0_141"
OpenJDK Runtime Environment (build 1.8.0_141-8u141-b15-3~14.04-b15)
OpenJDK 64-Bit Server VM (build 25.141-b15, mixed mode)
grodriguez@ubuntu:~$ javac -version
javac 9.0.4
通过 update-java-alternatives 选择其他版本时不存在此问题。例如,选择java-1.7.0-openjdk-amd64
可以正常工作(java
和javac
都正确更新)。
为什么会发生这种情况?
答案1
这似乎是‘update-java-alternatives’中的一个错误。
- Debian 错误报告:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=825987
- Ubuntu 错误报告:https://bugs.launchpad.net/ubuntu/+source/java-common/+bug/1603692
这些报告还包含修复所述行为的补丁。