Comment utiliser l'installation Windows de Java à partir de BashOnWindows10?


10

Je ne peux pas exécuter la version Windows de java.exe à partir de BashOnWindows10. Il est présent dans PATH, mais l'invocation échoue silencieusement. Mon objectif est d'éviter d'avoir à réinstaller JDK / JRE dans WSL. Alors que j'exécute la mise à jour du Créateur, je m'attendais à ce que le logiciel puisse appeler n'importe quelle application Windows. Des idées pourquoi cela se produit? Je suis cependant capable de lancer avec succès l'installation Windows de Python.

frapper

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)

Ce n'est pas lié à Java, c'est un problème avec tous les binaires Windows. Voir ce bogue pour la discussion et quelques solutions: github.com/Microsoft/BashOnWindows/issues/333
eckes

Réponses:


8

Voici comment j'ai fait en sorte que Java "fonctionne simplement" pour mon installation WSL.

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

Cela crée un lien symbolique dans votre /bindossier vers votre binaire Windows Java. Chaque fois que WSL essaie d'invoquer Java maintenant, il est redirigé vers la version Windows. Vous devrez probablement ajuster le chemin à mesure que les versions Java changeront à l'avenir.


Superbe ! Avant: Java Command 'Java' not found- version donne Après: Java - version donne java version "1.8.0_151"Je souhaite que je pourrais monter cette réponse comme 10 points au lieu de 1!
boardtc

1
Juste un avertissement que cela "confondra" et les chemins utilisés dans votre programme Java ou en tant que propriétés / entrées. Par exemple, "/tmp/somefile.txt" sera par exemple "c: /tmp/somefile.txt" lorsque votre Java Windows essaiera de l'exécuter et entraînera un fichier introuvable!
Anders

2

Ce problème est dû au fait que WSL ne prend pas en charge les raccourcis Windows dans la mise à jour du créateur. /mnt/c/ProgramData/Oracle/Java/javapath/java.exeest en fait un raccourci vers le répertoire d'installation réel qui est C:\Program Files\Java\jre1.8.0_31\bindans mon cas. L'appel de Java à partir du chemin d'installation réel semble fonctionner comme prévu.

Ce problème est résolu dans la version 16193


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.