Сценарий, изменяющий переменную среды JAVA_HOME, не работает - PullRequest
0 голосов
/ 14 марта 2020

Я недавно столкнулся со следующей проблемой: у меня есть файл .jar, который еще не портирован на Java сборок выше Java 8, но предпочитаю использовать Java 13 в противном случае. Моя среда Windows, поэтому я логически попытался написать скрипт для автоматизации изменения переменной Path:

set JAVA_HOME=C:\Program Files\AdoptOpenJDK\jdk-8.0.242.08-hotspot
set Path=%JAVA_HOME%\bin;%Path%
echo Java 8 is set to path

Я вручную установил переменную среды JAVA_HOME на C:\Program Files\AdoptOpenJDK\jdk-13.0.2.8-hotspot, и в Path я добавил %JAVA_HOME%\bin. Затем я добавил в Path папку, в которой хранятся скрипты для изменения переменной Path на нужную версию, и записал командные файлы для Java 8 и Java 13. Я тестировал в cmd, если JAVA_HOME работает хорошо:

echo %JAVA_HOME%
C:\Program Files\AdoptOpenJDK\jdk-8.0.242.08-hotspot

и так и было. Кроме того, я мог бы успешно вызывать свои сценарии (имя моего командного файла switch_to_java8:

C:\WINDOWS\system32>switch_to_java8

C:\WINDOWS\system32>set JAVA_HOME=C:\Program Files\AdoptOpenJDK\jdk-8.0.242.08-hotspot

C:\WINDOWS\system32>set Path=C:\Program Files\AdoptOpenJDK\jdk-8.0.242.08-hotspot\bin;C:\Program Files (x86)\Python38-32\Scripts\;C:\Program Files (x86)\Python38-32\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Microsoft VS Code\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\Common Files\Autodesk Shared\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\AdoptOpenJDK\jdk-13.0.2.8-hotspot\bin;C:\Program Files\AdoptOpenJDK\scripts;C:\Users\minef\AppData\Local\Microsoft\WindowsApps

C:\WINDOWS\system32>echo Java 8 is set to path
Java 8 is set to path

Кажется, что оно не изменило JAVA_HOME в конце концов, и я не совсем понимаю, почему. В чем причина для этого и как это можно решить? Я использовал повышенный доступ на каждом шаге. Также можно ли написать командный файл для прямого вызова C:\Program Files\AdoptOpenJDK\jdk-8.0.242.08-hotspot\bin\java.exe? Если да, как я могу это сделать?

1 Ответ

0 голосов
/ 14 марта 2020

Я не совсем понял, в чем проблема, вы установили для JAVA_HOME значение C: \ Program Files \ AdoptOpenJDK \ jdk-8.0.242.08-hotspot, и это было именно так. Я что-то упустил?

На другой вопрос, чтобы запустить C: \ Program Files \ AdoptOpenJDK \ jdk-8.0.242.08-hotspot \ java .exe, просто позвоните %JAVA_HOME%\java.exe.

...