我在机器上安装了两个OpenJDK版本(8和11)。如果其中一种产品使用OpenJDK 8,而另一种产品使用OpenJDK 11,他们是否会选择相应的OpenJDK版本,或者我需要使用更新替代方法明确地使该版本为最新版本?
update-alternatives --config java
答案 0 :(得分:1)
您可以这样做。 通常的做法是使用已安装的Java位置设置环境变量,然后使用快捷键。 像java abc.java&javac abc这样的东西。
但是,如果您想为不同的项目使用某些diffenrt版本,则可以通过提供绝对路径来使用 例如:如果您的Java bin位置是/ abc / xyz / java / jdk8 / bin和/ abc / xyz / java / jdk11 / bin 那么你可以使用像 / java / xyz / java / jdk8 / bin / java abc.java(对于Java 8编译)或/ abc / xyz / java / jdk11 / bin / java abc.java(对于Java11编译)。
此外,Java支持向后兼容,这意味着如果代码是在Java 8中编译的,则可以在java11运行时环境中运行,但是Reverse不是true。
答案 1 :(得分:0)
我不是专家,但我认为您问题的答案取决于具体情况-是或否并不适用于所有情况。
我看到很多人所做的就是创建一个.bash_profile函数,以在终端中使用一个简单的单字命令轻松更改其JAVA_HOME或其他环境变量。
我有95%的时间使用Java8,所以我自己还没有这样做。在开发方面,对于绝大多数的依赖项管理器,构建工具,IDE等等,有一种方法可以根据您的需要为特定项目,工作空间或上下文指定Java版本。例如,如果您使用Maven,只需添加:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
给你POM.xml
Gradle的等效项是:
apply plugin: 'java'
sourceCompatibility = 1.8
targetCompatibility = 1.8
信用:How do I tell Gradle to use specific JDK version?
我相信也可以在META-INF / manifest.mf中指定JDK。
很抱歉,如果没有回答您的问题。在少数情况下,我只需要指定一个特定的JDK版本即可,而典型的设置属性就是我要做的事情。