如何在 Linux 中的不同 Java 版本之间切换?

Van*_*oel 5 java terminal ubuntu linux-mint

我手动安装了 Java 8 并通过命令行(open-jdk)安装了 Java 11。我是 linux 的菜鸟,不知道如何在版本之间切换。

我运行以下命令来更改默认版本。

update-alternatives --config java
Run Code Online (Sandbox Code Playgroud)

返回:

  Selection    Path                                         Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1101      auto mode
  1            /opt/java/jdk1.8.0_211/bin/java               1         manual mode
  2            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1101      manual mode
Run Code Online (Sandbox Code Playgroud)

update-alternatives --config javac
Run Code Online (Sandbox Code Playgroud)

返回:

There is only one alternative in link group javac (providing /usr/bin/javac): /usr/lib/jvm/java-11-openjdk-amd64/bin/javac
Nothing to configure.
Run Code Online (Sandbox Code Playgroud)

Nar*_*shi 13

您可以使用SDKMan,它允许我们做同样的事情,SDKMan 是一个免费使用的开源工具,它帮助我们安装和管理大约 29 个软件开发工具包的并行版本,例如 Java、Groovy、Scala、Kotlin 和 Ceylon。Ant、Gradle、Grails、Maven、SBT、Spark、Spring Boot、Vert.x。

而且它也设置_HOMEPATH自动环境变量。

您可以通过运行以下命令来安装 SDKMan

$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
Run Code Online (Sandbox Code Playgroud)

您可以使用列出所有版本的 Java

$ sdk list java
Run Code Online (Sandbox Code Playgroud)

您可以使用sdk install命令安装不同的 Java 版本,例如

$ sdk install java 9.0.4-open
$ sdk install java 11.0.2-open
Run Code Online (Sandbox Code Playgroud)

您可以使用sdk usesdk default命令在它们之间切换,您可以在我的博客如何在同一台机器上安装多个版本的 Java 上阅读更多相关信息。