当前位置: 首页 > 工具软件 > jenv > 使用案例 >

mac 有几个java,在Mac OS X中使用jenv管理多个Java版本

程禄
2023-12-01

一、前言

前段时间因为自己的失误,使用 rm -rf ~ 将自己的个人用户下的文件之类的都删除掉了,一开始看到网上的教程,心里很是奔溃!于是在第二次配置mac开发环境的时候打算写点东西记录下自己的过程,为与我相似的后来人提供一些借鉴。本篇文章记录在Mac OS X下利用jenv管理多个不同的Java版本。

二、Java开发环境搭建

2.1安装Java和maven

使用Java时会接触到不同的版本。大多数时候我在使用Java 8,但是因为某些框架或是工具的要求,这时不得不让Java 6上前线。一般情况下是配置JAVA_HOME,指定不同的Java版本,但是这需要人为手动的输入。如果又要选择其他版本,就需要对JAVA_HOME重新进行设置。这十分麻烦,所以在做这些操作时真是“会呼吸的痛”。终于,我发现了jEnv。

正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友。使用简单的命令就可以在不同的Java版本之间进行切换。如果你使用过rbenv,你会发现jEnv就如同rbenv的Java版一样。

基本使用:

在Mac OS X下使用HomeBrew安装jenv:(Mac下安装HomeBrew)

$brew install jenv

安装成功之后需要进行一下简单的配置,让它可以起作用:

使用Bash的情况

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile

使用Zsh的情况

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc

$ echo 'eval "$(jenv init -)"' >> ~/.zshrc

好了,jEnv已经安装好了,让我们来看一下它找见哪个Java版本了:

$ jenv versions

* system (set by /Users/bxpeng/.jenv/version)

它只找到了系统默认的Java,即使我已经下载了其他版本的Java。*表示当前选择的版本。

和rbenv不同的是,jEnv不能自己安装任何版本的Java,所以需要我们手动安装好之后再用jEnv指向它们。

安装Java 6,需要在Apple进行下载。它将安装到/Library/Java/JavaVirtualMachines/下; 安装Java 7,可以在Oracle进行下载.它将安装到/Library/Java/JavaVirtualMachines/下; 安装Java 8,可以在Oracle进行下载.它将安装到/Library/Java/JavaVirtualMachines/下。

使用jenv add将Java 6加入jenv中:

$ jenv add /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/

1.6 added

1.6.0.65 added

oracle64-1.6.0.65 added

运行jenv versions时会显示:

$ jenv versions

* system (set by /Users/bxpeng/.jenv/version)

1.6

1.6.0.65

oracle64-1.6.0.65

同样的,使用jenv add将Java 7加入jenv中:

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/

1.7 added

1.7.0.71 added

oracle64-1.7.0.71 added

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/

1.8 added

1.8.0.25 added

oracle64-1.8.0.25 added

现在运行jenv versions会显示:

$ jenv versions

* system (set by /Users/bxpeng/.jenv/version)

1.6

1.6.0.65

oracle64-1.6.0.65

1.7

1.7.0.71

oracle64-1.7.0.71

1.8

1.8.0.25

oracle64-1.8.0.25

这样看起来版本比较混乱,为此博主觉得有必要对版本进行管理,使用jenv remove可以从jEnv中去掉不需要的Java版本:

$ jenv remove 1.6

JDK 1.6 removed

整理后,再运行jenv versions会显示:

$ jenv versions

* system (set by /Users/bxpeng/.jenv/version)

1.6.0.65

1.7.0.71

1.8.0.25

选择一个Java版本,运行jenv local,例如:

$ jenv local 1.8.0.25

$ java -version

java version "1.8.0_25"

Java(TM) SE Runtime Environment (build 1.8.0_25-b17)

Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

你可以运行jenv global设置一个默认的Java版本,运行jenv which java显示可执行的Java的完整路径。

你也可以在特定的文件夹下使用.java-version文件来设定Java的版本。当我需要在Project中使用Java 6时,我仅仅需要把1.6.0.65作为内容保存在.java-version文件中,当我进入该文件夹时jEnv会自动地帮助我设定local的Java的版本。

没错,我们现在有了Java的多个版本,并且可以在它们之间轻松切换。更多的使用方法可以在jEnv官网的官网查询到。

输入如下命令来安装Maven最新版:

brew install maven

2.2安装linux-china/jenv

我用的jenv是这个版本的,这个相比较2.1中写的更加好用,现将其用法简记如下:

install jenv $ curl -L -s get.jenv.io | bash安装成功之后installer会提示你新打开一个窗口或者restart。

由于版权问题,jenv无法分发Java SDK,所以我们需要按照2.1中提供的网址进行下载Java相应的版本进行安装,安装完成之后需要使用如下命令将Java交由jenv进行管理、

$mkdir -p $HOME/.jenv/candidates/java

$ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/home $HOME/.jenv/candidates/java/1.7.0_45

安装其他的组件:

1.浏览所有的组件: $ jenv all

2.查看某个组件所有可以获得的版本: 例如$ jenv ls maven

3.安装某个组件的特定版本:$ jenv install maven 3.3.1 在命令行使用mvn –version检查安装

4.列出所有安装的组件:$ jenv ls

5.更新组件库:$ jenv repo update

三、总结

采用jenv进行java版本管理可以帮助我们省去设置JAVA_HOME的麻烦,同时可以很方便的在不同的java版本之间进行切换。

参考链接:

1.jenv官网

2.Managing multiple versions of Java on OS X

 类似资料: