Как запустить одно приложение (JShell) на JDK 9, а все остальные на JDK 8?

Я пытаюсь работать с jshell из Java 9. Поэтому для этого я установил JDK 9 на свой Mac, где у меня уже был установлен 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
    

Итак, мой вопрос: есть ли лучший способ сделать это? Или это хорошая практика, чтобы делать такие вещи? Пожалуйста, предложите.

1 ответ

Вы можете написать сценарий. Сбросьте 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 $@

Вот как я решил проблему:

  1. Удалите JDK 9, установите JDK 8, а затем установите JDK 9.

  2. Добавьте соответствующие пути JAVA_HOME для версий 8 и 9. Установите псевдоним для них обоих и установите 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
    
Другие вопросы по тегам