尽管有很多会议演讲可能会让您思考,但即使有的话,也并非每个Java开发人员每天都使用Docker。 但是,它们可以与几个不同的Java版本一起使用的机会很高。 这可能是由于不同的原因:
- 检查同一应用程序的版本兼容性, 例如 7 vs 8
- 检查同一应用程序上的提供程序兼容性, 例如 OpenJDK vs Oracle
- 因为当前正在开发(或维护)的不同应用需要不同的Java版本
- 因为您想使用最新的JDK版本,但是在使用Java 1.7时会遇到困难
为了满足该需求,一种简单的方法是在必要时设置JAVA_HOME
环境变量, 例如 :
export JAVA_HOME= /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
那个有效。 但是,每次需要更改时,您都必须记住所需Java版本的路径。 如果没有这种需要,则至少每次打开新的外壳程序时都必须这样做。 鉴于当前Java版本的发布周期较快,一个使用的并发Java版本的数量在未来几年内必定会增加。
其他语言也面临同样的问题。 其中之一就是Ruby。 为了解决这个问题,有一个名为rbenv的工具。 如果有这样的Java工具会不会很好? 好吧,有。
如果需要在同一台计算机上使用不同的Java版本, jenv正是您所需要的。
-
安装它
-
brewinstall jenv
也可以通过git clone安装。 在这种情况下,您还应该手动更新系统以将PATH指向可执行文件。
注册一个JDK
-
jenv add /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
输出类似于:
oracle64-9.0.4 added 9.0.4 added 9.0 added
这是唯一需要记住路径的时间!
列出可用的JDK
-
jenv versions
输出可能类似于(取决于系统的当前状态):
* system 1.8 1.8.0.92 (set by /usr/local/var/jenv/version) 9.0 9.0.4 oracle64-1.8.0.92 oracle64-9.0.4
*指向当前文件夹中使用的版本
设置默认的JDK
-
jenv global 1.8
覆盖当前文件夹中使用的JDK
-
jenvlocal 9.0
但是,这还不止于此。 如果Java版本不与日常使用的工具(例如Maven)集成,则更简单的Java版本处理将无用。 jenv
通过插件提供与这些工具的集成。 例如,强制mvn
使用通过jenv
定义的版本:
jenv enable-plugin maven
插件可用于Ant,Groovy,Spring Boot甚至SBT(还有更多)!
结论
如果您需要使用不同的Java版本, jenv
可能不是节省生命的方法,但肯定可以节省时间。