6

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

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

我已经搜索过,但没有看到类似的东西。我猜 Java 生态系统已经习惯了在 IDE 中拥有这个功能。

编辑:更改 PATH 和 JAVA_HOME 似乎工作正常。它可以是微不足道的自动化。

4

4 回答 4

5

jenv,基于 Ruby 的 RVM。

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

还有一个我没有使用过的工具,令人困惑的是,它也被命名为jenv,但它基于 Ruby 的 rbenv。

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

于 2014-03-11T14:36:29.203 回答
2

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

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

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

于 2012-04-20T05:42:48.723 回答
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 

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

于 2016-03-25T06:13:26.647 回答
1

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 
于 2018-12-15T17:12:17.053 回答