Ubuntu 22.04.2:
我安装了 java-17-amazon-corretto 并执行了 update-java-alternatives,但在编译项目时出错。上次我不得不修复未更新的链接(java 11 vs javac 8)。
如果我继续/etc/alternatives
,ls -la |grep java
我会看到链接的不同配置:
javah -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javah
jjs -> /usr/lib/jvm/java-11-openjdk-amd64/bin/jjs
javac -> /usr/lib/jvm/java-17-amazon-corretto/bin/javac
我猜测这些可执行文件不再随新 JVM 分发。
但是这个:
jexec -> /usr/lib/jvm/java-11-openjdk-amd64/lib/jexec
尚未更新至/usr/lib/jvm/java-17-amazon-corretto/lib/jexec
当我这样做时,sudo update-alternatives --list jexec
我只得到这个:
/usr/lib/jvm/java-11-openjdk-amd64/lib/jexec
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jexec
为什么这个没有更新,并且在 update-alternatives 二进制文件中不可见?
有没有更好的方法来检查所有这 97 个链接,或者我是否需要手动修复它们?
经过手动检查,也存在jfr
此问题。
答案1
这似乎是 java-17-amazon-corretto 打包时出现的问题。我在测试版 Ubuntu 22.04 系统上安装了它,也遇到了同样的问题。
但是,当我从 Ubuntu 的存储库安装 openjdk-17-jdk 时,所有正确的替代方案都已创建。
apt install openjdk-17-jdk
update-java-alternatives -s java-1.17.0-openjdk-amd64