我有 Debian 10 并openjdk-11-jdk
从 Debian 存储库安装。我必须运行一个使用 Java 运行时版本 58 编译的程序,因此我需要更新它。
我下载了.tar.gz
OpenJDK 15,网址为java.net。我提取了该文件,/usr/local/bin
因为它已在我的变量中列出PATH
。我运行了update-alternatives --list java
,但只列出了 OpenJDK 11。
如何正确安装 OpenJDK 15?
答案1
sudo update-alternatives --config java
update-alternatives: error: no alternatives for java
安装的java版本需要添加到update-alternatives
:
优先添加jdk-11 10
:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 10
优先添加 jdk-15 20
(假设您已将 tarball 解压到/usr/lib/jvm/
目录中。在您的情况下替换/usr/lib/jvm/jdk-15.0.2/bin/java
为/usr/local/bin/jdk-15.0.2/bin/java
)
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-15.0.2/bin/java 20
核实:
sudo update-alternatives --list java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/jdk-15.0.2/bin/java
和
sudo update-alternatives --config java
示例输出:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/jdk-15.0.2/bin/java 20 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 10 manual mode
2 /usr/lib/jvm/jdk-15.0.2/bin/java 20 manual mode
Press <enter> to keep the current choice[*], or type selection number:
检查java版本,在上面的例子中默认版本是jdk-15:
java --version
openjdk 15.0.2 2021-01-19
OpenJDK Runtime Environment (build 15.0.2+7-27)
OpenJDK 64-Bit Server VM (build 15.0.2+7-27, mixed mode, sharing)
答案2
答案相当简单,但不是很推荐,只需将 apt 设置为首选的buster-updates
软件包,将 Debian 11 的(Bullseye)存储库附加到您的/etc/sources.list
,然后强制它安装/更新openjdk-17-jdk
.
这意味着您将拥有一个 FrankenDebian,但它仍然比从源代码或其他地方安装要好得多。
您还可以使用 GUI 更轻松地完成此操作:synaptic
。
编辑:我也忘记了,但是 GAD3R 在这件事上也是正确的update-alternatives
,如果从软件包安装没有触发它,你可能也必须这样做。