Версия Javac отличается от версии Java

Linux Mint 19.3

В файле etc / profile:

export PATH=$PATH:$JAVA_HOME/bin

бегать set в терминале:

JAVA_HOME=/usr/java/jdk1.8.0_251
PATH=/usr/java/jdk1.8.0_251/bin

В терминальном запуске

java -version

java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

Это верно.

Но когда я бегу

javac -version Получаю другую версию.

javac 11.0.7

Мне нужен javac версии 1.8 (такой же, как java)

1 ответ

Решение

Основная причина проблемы заключается в том, что JAVA_HOME добавляется в конец PATH.


Проблему можно решить, добавив JAVA_HOME в начало PATH следующим образом:

export PATH=$JAVA_HOME/bin:$PATH

Рабочий пример:

Предположим, что JDK 11 установлен в каталоге /opt/jdk-11. Вот шаги по использованию Java версии 11 как для java, так и для javac:

1. Обновите JAVA_HOME и PATH

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

2. Убедитесь, что и java, и javac выбраны из /opt/jdk-11/bin.

$ which java
/opt/jdk-11/bin/java

$ which javac
/opt/jdk-11/bin/javac

3. Проверьте вывод java и javac.

$ java -version
java version "11.0.7" 2020-04-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)

$ javac -version
javac 11.0.7
Другие вопросы по тегам