困恼
在开发的时候每个人配置 Java 环境都不一样, 或者开发者都有多个版本的 jdk,比如:1
2
3
4
5
6
7
8
9
10
11
12# 当前版本
➜ ~ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
# 所有的版本
➜ ~ ll /Library/Java/JavaVirtualMachines
total 0
drwxr-xr-x 3 root wheel 102B 6 3 2017 jdk1.7.0_80.jdk
drwxr-xr-x 3 root wheel 102B 4 12 2017 jdk1.8.0_121.jdk
➜ ~
jEnv 介绍
Java 生态中包含大量的你可能想使用的工具,包括 Java 本身到一些构建工具,如 Maven 和 Gradle,以及第三方应用如 ActiveMQ 和 Tomcat 等。经常你会需要同时使用这些工具的不同版本,用于不同的项目,或者想对一个项目在不同版本的环境中做兼容性测试。
管理这些不同版本的工具是一项非常复杂的任务。每个工具有各自不同的获取方式,如果安装,如何控制都是很成问题的。
值得庆幸的是,jenv 可以帮你轻松搞定这个复杂的工作(请注意该工具不同于 jEnv, 这是用来设置 JAVA_HOME 环境变量的)。jenv 支持 Windows、Mac 和 Linux – 可以轻松管理大量基于 Java 开发的工具的多个版本。目前已经支持超过 200 个不同的工具。
jEnv 安装
1 | ➜ ~ brew install jenv |
它只找到了系统默认的Java,即使我已经下载了其他版本的Java。*表示当前选择的版本。
添加 Java 版本
1 | ➜ ~ jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/ |
这当然不是真实的路径,而是一个硬链接。你可以找到 /Users/kmyhy/.jenv/versions/ 目录,发现所有的 java 版本都被列在了这里,这些硬链接(相当于 windows 的快捷方式)都指向了对应的 java 安装目录。
你还可以指定一个全局的版本1
➜ ~ jenv global 1.7.0_80
这样,默认的 java 版本就是 1.7.0_80 了。如果你想在某个项目中使用 1.7.0_80 版本,可以在项目文件夹下新建一个.java-version 文件,将文件内容编辑为 1.7.0_80 保存。这样,你进入这个文件夹时 jenv 会自动使用 1.7.0_80 作为当前版本(即 local 版本)。