【问题标题】:How to run a single applications(JShell) on JDK 9, and all other on JDK 8?如何在 JDK 9 上运行单个应用程序(JShell),而在 JDK 8 上运行所有其他应用程序?
【发布时间】:2017-12-18 07:43:51
【问题描述】:

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

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

【问题讨论】:

  • 阅读stackoverflow.com/questions/26252591/…?如果是,请解释为什么这不是重复的?
  • 但是这个问题总是在 8 或 9 上运行。但我想要的是只有在我想运行 jshell 时才更改为 jdk 9
  • 链接的问题不是重复的,因为它假设您使用的是 Mac,而这个问题与操作系统无关,我会得到在 Windows 上运行的答案的帮助。

标签: java-8 java-9 java-home jshell


【解决方案1】:

您可以编写脚本。重置环境并在您的路径中启动 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 $@

【讨论】:

    【解决方案2】:

    这是我解决问题的方法:

    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
      

    【讨论】:

      猜你喜欢
      • 2014-01-17
      • 2020-05-28
      • 2012-05-03
      • 2018-11-22
      • 2018-02-26
      • 2018-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多