Como usar a instalação do windows do java a partir do BashOnWindows10?

6

Não consigo executar a versão do java.exe no Windows a partir do BashOnWindows10. Está presente no PATH, mas a invocação falha silenciosamente. Meu objetivo é evitar ter que instalar o JDK / JRE novamente no WSL. Enquanto estou executando a atualização do Criador, eu esperava que fosse capaz de invocar qualquer aplicativo do Windows. Alguma idéia porque isso está acontecendo? Eu sou no entanto capaz de iniciar a instalação do Python com sucesso.

bash

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)
    
por Abhiram 05.06.2017 / 18:30

2 respostas

2

Esse problema ocorre porque o WSL não suporta atalhos do Windows na atualização do Criador. /mnt/c/ProgramData/Oracle/Java/javapath/java.exe é na verdade um atalho para o diretório de instalação real que é C:\Program Files\Java\jre1.8.0_31\bin no meu caso. Chamar java do caminho de instalação real parece funcionar como esperado.

Este problema foi resolvido em build 16193

    
por 11.08.2017 / 15:37
3

Veja como acabei de fazer o Java "funcionar" para a minha instalação do WSL.

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

O que isto faz é criar um link simbólico na sua pasta /bin para o seu binário do Windows Java. Sempre que o WSL tenta invocar o Java agora, ele é redirecionado para a versão do Windows. Você provavelmente precisará ajustar o caminho conforme as versões do Java forem alteradas no futuro.

    
por 06.11.2017 / 14:33