对于Java世界,是否存在Ruby Version Manager等效项?
我正在寻找工具,让我可以轻松地下载和安装一个新的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世界,是否存在Ruby Version Manager等效项?
我正在寻找工具,让我可以轻松地下载和安装一个新的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.
7条答案
按热度按时间nwo49xxi1#
http://www.jenv.be/将允许这种类型的控制。
nzrxty8p2#
SDKMAN!是一个类似于Java生态系统的工具,支持各种Java版本,Scala、Clojure、Kotlin、Groovy,以及Maven和Gradle等构建工具。
在Mac和Linux上工作,其中一些提到了对Windows的支持,这取决于你愿意尝试的努力程度:)
pw9qyyiw3#
如果您使用Ubuntu,您可以通过命令指定要使用的JVM(仅适用于从apt-get或aptitude安装的JVM)
sudo update-alternatives --config java
或者通过设置JAVA_HOME.下面是很好的教程:
http://vietpad.sourceforge.net/javaonlinux.html
m3eecexj4#
为了完整起见,还有两个--jabba(我是其中的作者;用Go语言编写,并按照nvm/gvm/rvm设计)和jenv(不要与www.example.com混淆jenv.be;不支持从oracle安装,但可以从自定义zip安装)。
eit6fx6z5#
使用JVM,如果你需要在它们之间切换,你只需要使用一个批处理文件(或powershell脚本)来管理类路径和JVM路径。你不需要依赖系统默认的JVM路径,而是通过在运行JVM的shell中更改类路径和JVM路径环境,让你的应用指向你喜欢的任何JVM。
对于从注册表中获取Java位置的程序,理论上您也可以使用批处理脚本来更新。
在这方面,Java要比“Ruby版本管理器”简单得多。
yks3o0rb6#
由于它(还)不在可能性列表中,因此还有asdf。
asdf不仅为java提供了版本管理,默认情况下它还提供了~400 different languages and tools的插件,你可以在github或create your own上找到更多。
下面是一个如何设置新安装的示例(你也可以安装补全,这样你就不必先列出版本了)。java插件被添加,一个特定的版本(存在用于
adoptopenjdk
、corretto
、dragonwell
、graalvm
、liberica
、mandrel
、microsoft
、openjdk
、oracle
、sapmachine
、semeru
、temurin
的版本,trava
、zulu
),并将其配置为全局(或本地版本)以用途:asdf使用
$HOME/.tool-versions
中的文件来配置全局选定版本。如果您调用的目录中包含不同版本的.tool-versions
文件的任何工具,则将使用该文件(使用asdf local …
定义)。ubbxdtey7#
诀窍是使用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。注意:上面的命令可能会抛出以下错误,
这是因为openjdk插件在默认情况下没有安装。要修复此问题,请运行
sudo apt-get install icedtea-7-plugin
并重新运行update-java-alternatives。