如何在JDK 9上运行单个应用程序(JShell),以及在JDK 8上运行所有其他应用程序?

问题描述 投票:1回答:2

我正在尝试使用Java 9的jshell。因此,我在我的Mac上安装了JDK 9,我已经安装了JDK 8。

我的所有项目,工作区,Hadoop,Spark和依赖API都使用JDK 8.因此,对于当前场景,我无法将所有项目都移动到JDK 9。

所以我想要的是一个小型实用程序或智能方式根据需要在JDK 8和JDK 9之间切换。

目前,我在做的是:

  1. 打开一个终端。 kv:micro-tab karan.verma$ echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
  2. 暂时将JAVA_HOME设置为jdk 9 kv:Home karan.verma$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
  3. 启动jshell kv:Home karan.verma$ jshell | Welcome to JShell -- Version 9.0.1 | For an introduction type: /help intro
  4. 完成后关闭终端。这意味着,全球JAVA_HOME现在可以运行了。 kv:micro-tab karan.verma$ echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

所以,我的问题是,有没有更好的方法来做到这一点?或者这是做这类事情的好习惯?请建议。

java-8 java-9 java-home jshell
2个回答
0
投票

你可以写一个脚本。重置env并在路径中启动jshell。

#!/bin/sh

# path
export PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

# java
export JAVA_HOME=/opt/jdk-11
export PATH=$JAVA_HOME/bin:$PATH

$JAVA_HOME/bin/jshell $@

0
投票

这是我如何解决这个问题:

  1. 卸载JDK 9,安装jdk 8然后安装jdk 9。
  2. 为版本8和9添加相应的JAVA_HOME路径。为它们设置别名并将Java 8设置为默认JDK。 export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8) export JAVA_9_HOME=$(/usr/libexec/java_home -v1.9) alias java8='export JAVA_HOME=$JAVA_8_HOME' alias java9='export JAVA_HOME=$JAVA_9_HOME' #default java8 export JAVA_HOME=$JAVA_8_HOME
  3. 现在只需使用别名设置java 8或java 9即可在版本之间切换,如下所示: java8 java9
© www.soinside.com 2019 - 2024. All rights reserved.