使用非当前Java版本

时间:2019-07-09 23:57:00

标签: java

我在机器上安装了两个OpenJDK版本(8和11)。如果其中一种产品使用OpenJDK 8,而另一种产品使用OpenJDK 11,他们是否会选择相应的OpenJDK版本,或者我需要使用更新替代方法明确地使该版本为最新版本?

update-alternatives --config java

2 个答案:

答案 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版本即可,而典型的设置属性就是我要做的事情。