我尝试安装一个软件,但出现以下错误: 您的系统上找不到合适的 Java 虚拟机。JVM 的版本必须至少为 17.0.2,最多为 17。请定义 INSTALL4J_JAVA_HOME 以指向合适的 JVM。
同时,我的java版本已更新为18.0.2。
java -version
openjdk version "18.0.2-ea" 2022-07-19
OpenJDK Runtime Environment (build 18.0.2-ea+9-Ubuntu-222.04)
OpenJDK 64-Bit Server VM (build 18.0.2-ea+9-Ubuntu-222.04, mixed mode, sharing)
我尝试按照从互联网上找到的命令,但它显示一些旧版本,我不明白问题是什么。
$ dpkg -l |grep default-jre
ii default-jre 2:1.11-72build2 amd64 Standard Java or Java compatible Runtime
ii default-jre-headless 2:1.11-72build2 amd64
请帮我解决这个错误,因为我急需使用该软件。
答案1
好吧,除此之外,你在评论中发布了 2 个相同的 sudo-apt 命令,如果我没有看错的话,我现在看到并意识到,我的英语需要提高。也许你也一样?
The version of the JVM must be at least 17.0.2 and at most 17.
意味着你的 >= 17.0.2 && 你的 < 18。
由于 Java 在大多数情况下具有向后兼容的良好传统,因此 Oracle 引入了非 LTS 版本,这些版本可能包含下一版本不支持的功能。您应该使用apt remove
openjdk apt purge
-18 版本并安装 openjdk-17 jdk。
我首先拒绝相信,有人会需要 jdk-17 却禁止 -18,这种情况很少见,因此只是对 感到有点恼火at most 17.
,然后在我愚蠢的脑袋里将其更正为at least
。
因此,您有一个 jdk-18,但需要一个 jdk-17。如果您出于其他目的需要版本 18,则可以将版本 17 与版本 18 并排安装,但如果不需要,您可以通过以下方式删除版本 18
sudo apt remove openjdk-18[Tab Tab]
18 之后,按 Tab 键自动完成。这比在版本之间来回切换更简单。
然后按照类似的方法安装17版本:
sudo apt install openjdk-17[Tab Tab]
要运行 Java 应用程序,您基本上需要 JRE(Java 运行时环境),要自己开发 Java,则需要 JDK(Java 开发工具包)。JDK 包含一个 JRE 来运行您的(和外部的)程序。
其他包(源、文档、...-headless、...)不是必需的。
完成此操作后,您可以尝试从头开始安装该软件。也许它会自己找到并设置 INSTALL4J_JAVA_HOME。否则,您必须手动设置它,但我不确定将其设置为哪个目录。也许您的程序文档可以回答这个问题。我猜是 /usr/lib/jvm/default-java 或 /usr/lib/jvm/java。此时,您可以通过启动应用程序来测试它。如果您找出正确的值,则可以在 ~/.bashrc 中设置变量。