Как установить JAVA_HOME, когда я использую метод "Runtime.getRuntime (). Exe c" в Intellij Idea? - PullRequest
0 голосов
/ 19 февраля 2020

Я хочу использовать команду "jdeps" для анализа зависимостей некоторых jar-файлов. Моя ОС Windows10. Код ядра

String command = String.format("jdeps \"%s\"", path.toAbsolutePath().toString());
String format = String.format("cmd.exe /c %s", command);
process = Runtime.getRuntime().exec(format);

На моем компьютере есть 2 версии JDK, JDK11 и JDK8. Я хочу использовать JDK11, и я устанавливаю переменную среды JAVA_HOME на путь JDK11. Когда я использую cmd windows для выполнения кода, он работает так, как я хочу, но если я запускаю его в Intellij Idea, JDK изменяется на JDK8.

Я уверен, что установил Настройки проекта - Проект - Проект SDK до JDK11. Уровень языка проекта - SDK по умолчанию (11-Локальный переменный синтаксис для лямбда-параметров). Модули - Источники - Уровень языка - это "Синтаксис 11-локальной переменной для лямбда-параметров". Java Компилятор Intellij Idea также имеет значение 11. В моей Intellij Idea ничего не говорится о JDK8.

Но если я запускаю свой код в Intellij Idea, JDK по-прежнему изменяется на JDK8. Это сводит меня с ума. Это ошибка? Что я могу сделать, чтобы установить JDK11?

Кстати, я исполняю c команду "setx JAVA_HOME", чтобы установить JAVA_HOME в JDK11 в моем коде, но она не работает.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

Intellij Идея использовать PATH в переменных окружения, если я ничего не установил. Я запускаю echo% PATH% в моем коде. Результат отличается от системных переменных среды. Я пытался перезапустить мою идею Intellij, но она не сработала. Наконец, я перезагружаю свой компьютер, и он работает.

0 голосов
/ 19 февраля 2020

Ничего из этого не использует JAVA_HOME.

Когда вы выполните jdeps таким образом, без оговорок, вы будете использовать версию на PATH.

Любое изменение PATH, или квалифицируйте команду.

Например, у меня нет Java на PATH, по умолчанию, поэтому запуск jdeps unqualified завершается неудачно, но я могу запустить его, если я квалифицируюсь команда:

C:\>jdeps -version
'jdeps' is not recognized as an internal or external command,
operable program or batch file.

C:\>C:\prog\Java64\jdk1.8.0_181\bin\jdeps -version
1.8.0_181

C:\>C:\prog\Java64\jdk-13.0.2\bin\jdeps -version
13.0.2
...