JVM 版本管理器

问题描述 投票:0回答:7

是否有 Ruby Version Manager 等同于 Java 世界?

我正在寻找可以让我轻松下载和安装新 JVM 并在它们之间切换的工具。例如:

jvm install <version>
jvm list //will list installed JVMs on my system
jvm use jdk1.6 //will switch my env to jdk 1.6 version, etc.
java jvm rvm
7个回答
35
投票

http://www.jenv.be/ 将允许这种类型的控制。


32
投票

SDKMAN! 是 Java 生态系统的类似工具。支持各种 Java 版本、Scala、Clojure、Kotlin、Groovy,以及 Maven 和 Gradle 等构建工具。

在 Mac 和 Linux 上工作,根据您愿意尝试的程度,提到对 Windows 的支持:)


23
投票

如果您使用 Ubuntu,您可以通过命令指定要使用的 JVM(仅适用于从 apt-get 或 aptitude 安装的 JVM)

sudo update-alternatives --config java

或者通过设置 JAVA_HOME。这是很好的教程:

http://vietpad.sourceforge.net/javaonlinux.html


10
投票

因为它(还)不在可能性列表中,所以还有 asdf.
asdf 不仅提供 java 的版本管理,它默认有 ~400 种不同语言和工具的插件,你可以在 github 上找到更多,或者 创建你自己的.

这是一个如何设置新安装的示例(您也可以安装 completion 这样您就不必先列出版本)。添加了java插件,具体版本为

adoptopenjdk
,
corretto
,
dragonwell
,
graalvm
,
liberica
,
mandrel
,
microsoft
,
openjdk
,
oracle
,
sapmachine
,
semeru
,
temurin
,
trava
,
zulu
)安装配置为全局(或本地版本)使用:

asdf plugin-add java          # Add java Plugin
asdf list-all java            # List all available java versions
asdf install java openjdk-18  # Install specific jdk version
asdf install java openjdk-17  # Install another jdk version
asdf global java openjdk-18   # Set the global jdk version
asdf local java openjdk-17    # Set the local version for calls from the current directory

asdf 使用

$HOME/.tool-versions
中的一个文件来配置全局选择的版本。如果您在具有不同版本的
.tool-versions
文件的目录中调用任何工具,则会使用该文件(用
asdf local …
定义)。


10
投票

为了完整起见,还有两个-jabba(我是作者;用Go编写,在nvm/gvm/rvm之后设计)
jenv(不要与 jenv.be 混淆;不支持从 oracle 安装,但可以从自定义 zip 安装)。


6
投票

使用 JVM,如果你需要在它们之间切换,你只需要使用批处理文件(或 powershell 脚本)来管理类路径和 JVM 路径。您不需要依赖系统默认的 JVM 路径,只需通过更改运行 JVM 的 shell 中的类路径和 JVM 路径环境,让您的应用程序指向您喜欢的任何 JVM。

对于从注册表获取 Java 位置的程序,理论上您也可以使用批处理脚本来更新它。

在这方面,Java 比“Ruby 版本管理器”容易得多。


0
投票

诀窍是使用 update-java-alternatives(来自 java-common 包)。 update-alternatives 命令不会更新各种 java /bin 可执行文件的每个符号链接,这就是 update-java-alternatives 更好的原因。

所以要选择 OpenJDK 6 到 7,请使用

update-java-alternatives -l
获取 Java 替代品列表,然后使用
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
切换 JDK。

注意:上面的命令可能会抛出以下错误,

update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist: 
  /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so

这是因为默认没有安装openjdk插件。要修复运行

sudo apt-get install icedtea-7-plugin
并重新运行 update-java-alternatives.

© www.soinside.com 2019 - 2024. All rights reserved.