1

我正在尝试使用 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
    

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

4

2 回答 2

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
    
于 2019-04-01T09:56:27.493 回答
0

你可以写一个脚本。重置环境并在您的路径中启动 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 $@
于 2018-11-13T18:11:43.703 回答