8

Я не могу запустить версию java.exe для Windows из BashOnWindows10. Он присутствует в PATH, но вызов молча прерывается. Моя цель - избежать повторной установки JDK/JRE в WSL. Поскольку я запускаю обновление Creator, я ожидал, что он сможет вызвать любое приложение Windows. Есть идеи, почему это происходит? Однако я могу успешно запустить установку Python для Windows.

удар

username@PC:~$ which java.exe
/mnt/c/ProgramData/Oracle/Java/javapath/java.exe

username@PC:~$ java.exe
username@PC:~$         <<<nothing happens

username@PC:~$ which python.exe
/mnt/c/Python34/python.exe

username@PC:~$ python.exe
Unable to translate current working directory. Using C:\WINDOWS\system32
Python 3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:25:23) [MSC v.1600 64 bit 
(AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

cmd.exe

C:\Users\username>java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)

3 ответа3

5

Вот как я только что сделал Java "просто работать" для моей установки WSL.

ln -s /mnt/c/Program\ Files\ \(x86\)/Java/jre1.8.0_151/bin/java.exe /bin/java

Это создает символическую ссылку в папке /bin на двоичный файл Windows Java. Всякий раз, когда WSL пытается вызвать Java сейчас, он перенаправляется на версию Windows. Возможно, вам придется скорректировать путь, поскольку версии Java изменятся в будущем.

2

Эта проблема связана с тем, что WSL не поддерживает ярлыки Windows в обновлении Creator. /mnt/c/ProgramData/Oracle/Java/javapath/java.exe на самом деле является ярлыком для фактического установочного каталога, в моем случае это C:\Program Files\Java\jre1.8.0_31\bin . Вызов Java из фактического пути установки, кажется, работает как ожидалось.

Эта проблема решена в сборке 16193

0

Если вы хотите выполнить свой java.exe внутри подсистемы Linux, вы можете выполнить следующий ответ:https://stackoverflow.com/a/54151117/2751561

Если вам нужно наоборот, вы можете вызвать java bin на cmd следующим образом:

wsl java -version

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .