¿Cómo utilizar la instalación de Windows de Java desde BashOnWindows10?


10

No puedo ejecutar la versión de Windows de java.exe desde BashOnWindows10. Está presente en PATH, pero la invocación falla en silencio. Mi objetivo es evitar tener que instalar JDK / JRE nuevamente en WSL. Mientras ejecuto la actualización del Creador, esperaba poder invocar cualquier aplicación de Windows. ¿Alguna idea de por qué está sucediendo esto? Sin embargo, puedo iniciar la instalación de Windows de Python con éxito.

golpetazo

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)

No está relacionado con Java, es un problema con todos los binarios de Windows. Vea este error para discusión y algunas soluciones: github.com/Microsoft/BashOnWindows/issues/333
eckes

Respuestas:


8

Así es como acabo de hacer que Java "simplemente funcione" para mi instalación WSL.

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

Lo que esto hace es crear un enlace simbólico en su /bincarpeta a su binario Windows Java. Cada vez que WSL intenta invocar Java ahora, se redirige a la versión de Windows. Probablemente necesitará ajustar la ruta a medida que las versiones de Java cambien en el futuro.


Excelente ! Antes: la versión de Java da Command 'Java' not foundDespués: la versión de Java da java version "1.8.0_151"¡Desearía poder aumentar esta respuesta como 10 puntos en lugar de 1!
boardtc

1
Solo un aviso de que esto "confundirá" y las rutas utilizadas en su programa Java o como propiedades / entradas. Por ejemplo, "/tmp/somefile.txt" será, por ejemplo, "c: /tmp/somefile.txt" cuando su Windows Java intente ejecutarlo y el archivo no se encuentre.
Anders

2

Este problema se debe a que WSL no admite accesos directos de Windows en la actualización del Creador. /mnt/c/ProgramData/Oracle/Java/javapath/java.exees en realidad un acceso directo al directorio de instalación real que está C:\Program Files\Java\jre1.8.0_31\binen mi caso. Invocar a Java desde la ruta de instalación real parece funcionar como se esperaba.

Este problema se resuelve en la compilación 16193


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.