【问题标题】:How can I change JVM implementation (e.g. HotSpot, GraalVM, OpenJ9 e.t.c.) when running JVM-compatible programs (Java, Kotlin, Scala e.t.c.)?在运行与 JVM 兼容的程序(Java、Kotlin、Scala 等)时​​,如何更改 JVM 实现(例如 HotSpot、GraalVM、OpenJ9 等)?
【发布时间】:2020-03-04 15:56:15
【问题描述】:

我需要更改 JVM 实现以比较哪一个更适合我需要满足的要求。我怎样才能做到这一点?特别是在 GNU/Linux 或 MacOS 上。使用java控制台命令运行java程序时,有没有办法设置JVM实现?或者我可能需要更改一些包含 JVM 实现的 lib 文件? 帮助将不胜感激。

【问题讨论】:

  • "java" 控制台命令被操作系统转换为完整路径。您可以使用自己的完整路径,例如“/usr/java/jdk1.8.0_20/bin/java”。

标签: java linux hotspot graalvm


【解决方案1】:

当您的机器上有多个 JVM 时,您可以在执行 java 命令时简单地限定您想要哪一个。

至少 Windows 上的 Oracle JVM 是这样工作的。我没有在 Linux 上尝试过,也没有在其他任何平台上尝试过,但 JVM 不需要在 PATH 上,您可以限定您想要的。

有关其工作原理的示例,请参阅 my answer to another question

【讨论】:

    【解决方案2】:

    在一台机器上拥有多个 JVM 实现很容易,您只需将每个 JVM 实现放在自己的目录中即可。就个人而言,我在 Linux 上使用 /opt,但您可以选择将它们放在哪里。

    然后,您需要做的就是更改您的 PATH 环境变量,以确保列表中具有 java 可执行文件的第一个目录是您要使用的目录,例如

    PATH=/opt/JDK8/bin:$PATH
    

    您也可以设置JAVA_HOME 环境变量,但这不会直接影响使用哪个JVM,它只是其他应用程序(如Tomcat)使用的约定。通过这样做,您可以设置一次 PATH,

    PATH=$JAVA_HOME/bin:$PATH
    

    然后只需更改 JAVA_HOME 变量以反映您要使用的 Java 版本。

    这适用于 Linux 和 Mac(这是一个基于 UNIX 的操作系统)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 2016-08-17
      • 2013-08-01
      • 2012-07-17
      • 2016-06-01
      • 1970-01-01
      • 2013-10-25
      相关资源
      最近更新 更多