适用于Java的’类似RVM’工具

我正在寻找一种工具,可以让我切换正在运行的Java实现,比如Ruby的RVM(或RBENV)。 我知道Debian系统提供了替代机制,我可以手动设置JAVA_HOME。

但是,如果可能的话,我想要更自动化的东西。 如果它可以获取更好的JDK,但不是必需的。

我搜索过但没有看到类似的东西。 我猜Java生态系统习惯于在IDE中使用此function。

编辑:更改PATH和JAVA_HOME似乎工作正常。 它可以简单地自动化。

我认为没有这样的工具。 每个平台都有自己的系统。 Debian / Ubuntu,RedHat / CentOS和SLE / OpenSUSE(可能还有一些其他发行版)使用替代机制。 Mac OSX有自己的buildin切换机制来改变当前使用的JVM。

我必须维护很多开发人员工作站和服务器。 所有基于* nix(OSX,Linux,Solaris)并用于在目录中安装所有JVM,并为应该使用的版本创建符号链接CURRENT。 指向此CURRENT符号链接的JAVA_HOME和PATH变量。 如果我想使用另一个版本,只需要移动CURRENT符号链接。 不需要采取进一步行动。

不幸的是,这种方法不适用于基于Windows的系统。

有jenv ,基于Ruby的RVM。

您必须通过一些手动步骤来添加新的Java版本†,但是一旦它们进入,您可以使用jenv use java $version在它们之间切换。 它还处理针对特定Java版本安装Java应用程序的问题。

还有另一个我没有使用的工具,令人困惑的也是jenv,但是基于Ruby的rbenv。

†添加Java版本的麻烦似乎是由于Oracle,可能是许可问题,并且似乎适用于这两种工具。

对于那些在2016年以上寻找此类工具的人 – 尝试jabba 。 它是在nvm / gvm / rvm之后设计的(实际上CLI几乎与nvm相同)。

 jabba install 1.8 # "jabba use 1.8" will be called automatically jabba ls # list all installed jdk's jabba use 1.6 # switch to a different version of jdk 

完全披露:我是该项目的维护者。