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

10

Não consigo executar a versão do java.exe para Windows do BashOnWindows10. Está presente no PATH, mas a chamada falha silenciosamente. Meu objetivo é evitar a instalação do JDK / JRE novamente na WSL. Como eu estou executando a atualização do Criador, eu esperava poder invocar qualquer aplicativo do Windows. Alguma idéia de por que isso está acontecendo? No entanto, sou capaz de iniciar a instalação do Python no Windows com êxito.

bater

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)
Abhiram
fonte
Não está relacionado ao Java, é um problema com todos os binários do Windows. Veja este bug para discussão e algumas arounds trabalho: github.com/Microsoft/BashOnWindows/issues/333
Eckes

Respostas:

8

Aqui está como eu fiz o Java "simplesmente funcionar" para a minha instalação da WSL.

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

O que isso faz é criar um link simbólico na sua /binpasta para o seu binário Java do Windows. Sempre que o WSL tenta chamar o Java agora, ele é redirecionado para a versão do Windows. Você provavelmente precisará ajustar o caminho à medida que as versões Java mudarem no futuro.

detuur
fonte
Soberbo ! Antes: Java Command 'Java' not found- versão dá Depois: Java - versão dá java version "1.8.0_151"Gostaria de poder responder esta resposta como 10 pontos em vez de 1!
boardtc
11
Apenas um aviso de que isso "confundirá" e os caminhos usados ​​no seu programa Java ou como propriedades / entradas. Por exemplo, "/tmp/somefile.txt" será "c: /tmp/somefile.txt" quando o Java do Windows tentar executá-lo e resultar em um arquivo não encontrado!
Anders
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 está C:\Program Files\Java\jre1.8.0_31\binno meu caso. Invocar o java do caminho de instalação real parece funcionar como esperado.

Esse problema foi resolvido na compilação 16193

Abhiram
fonte