Запуск Java с использованием соединения для папки исполняемого файла не работает

Запуск Java с использованием соединения для папки исполняемого файла не работает

Я только что обновил Java с версии 8 до версии 12. Операционная система — Windows 7 Home.

Поскольку Oracle больше не предоставляет отдельную JRE, при запуске программы мне нужно указать имя папки для исполняемого файла Java. Чтобы упростить смену папки при обновлении Java, я поместил соединение в одну из своих папок и добавил его в PATH. Но это не работает. Вот слегка отредактированный сеанс командной строки.

Сначала проверьте, все ли в порядке с развязкой и путем:

D:\Peter\PC>dir jre*

27/09/2019  15:11    <JUNCTION>     JREDir [C:\Program Files\Javajdk-12.0.1\bin]

D:\Peter\PC>dir jredir\java*
 Volume in drive D is DATA
 Volume Serial Number is CE44-C814

 Directory of D:\Peter\PC\jredir

27/09/2019  11:36           148,328 java.dll
27/09/2019  11:36            51,048 java.exe
27/09/2019  11:36           226,664 javaaccessbridge.dll
27/09/2019  11:36            20,840 javac.exe
27/09/2019  11:36            20,840 javadoc.exe
27/09/2019  11:36           174,952 javajpeg.dll
27/09/2019  11:36            20,840 javap.exe
27/09/2019  11:36            51,048 javaw.exe
               8 File(s)        714,560 bytes
               0 Dir(s)  149,081,808,896 bytes free
C:\>path
PATH=C:\Program Files (x86)...ls\Binn\;D:\Peter\PC\JREDir

Теперь попробуйте запустить Java, используя имя соединения

D:\Peter\PC>jredir\java -version
Error: opening registry key 'Software\JavaSoft\JRE'
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.

Кажется, это находит исполняемый файл java, но требует ключ реестра. Однако, выполнение cd в каталог исполняемого файла работает нормально!

C:\Program Files\Java\jdk-12.0.1\bin>java -version
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
java version "12.0.1" 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)

как и запуск с явным указанием имени каталога:

D:\Peter\PC>"C:\Program Files\Java\jdk-12.0.1\bin"\java -version
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
java version "12.0.1" 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)

Но запуск с использованием пути не приводит к такому результату.

C:\>java -version
Error: opening registry key 'Software\JavaSoft\JRE'
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.

Итак, у меня два вопроса:

  1. Почему не работает соединение? Я пробовал симлинк, но это тоже не сработало.
  2. Что нужно сделать в реестре, чтобы все заработало?

решение1

Я знаю, что это старый вопрос, но я поделюсь им для дальнейшего использования.

В примере, соединение на один уровень глубже. Это не должно быть, C:\Program Files\Javajdk-12.0.1\binно скорееC:\Program Files\Javajdk-12.0.1

Связанный контент