适用于Java的“类似RVM”工具

时间:2012-04-20 03:13:01

标签: java maven ant build continuous-integration

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

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

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

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

4 个答案:

答案 0 :(得分:4)

jenv,基于Ruby的RVM。

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

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

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:2)

对于那些在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 

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

答案 3 :(得分:0)

SDKman是必经之路:

The Software Development Kit Manager

SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems. It provides a convenient Command Line Interface (CLI) and API for installing, switching, removing and listing Candidates. Formerly known as GVM the Groovy enVironment Manager, it was inspired by the very useful RVM and rbenv tools, used at large by the Ruby community. 

https://sdkman.io/

特别提到RVM,并且与RVM一样,它是通过curl安装的:

  

立即开始!

     

继续,在终端中粘贴并运行以下命令:

$ curl -s "https://get.sdkman.io" | bash