Wie verwende ich die Windows-Installation von Java aus BashOnWindows10?


10

Ich kann die Windows-Version von java.exe nicht über BashOnWindows10 ausführen. Es ist in PATH vorhanden, aber der Aufruf schlägt stillschweigend fehl. Mein Ziel ist es, zu vermeiden, dass das JDK / JRE erneut in der WSL installiert werden muss. Während ich das Creator-Update ausführe, hatte ich erwartet, dass Windows-Anwendungen aufgerufen werden können. Irgendwelche Ideen, warum das passiert? Ich kann jedoch die Windows-Installation von Python erfolgreich starten.

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)

Es ist nicht mit Java verwandt, es ist ein Problem mit allen Windows-Binärdateien. Sehen Sie diesen Fehler für Diskussionen und einige
Problemumgehungen

Antworten:


8

Hier ist, wie ich Java für meine WSL-Installation "nur funktionieren" ließ.

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

Dadurch wird in Ihrem /binOrdner eine symbolische Verknüpfung zu Ihrer Windows Java-Binärdatei erstellt. Immer wenn die WSL versucht, Java aufzurufen, wird sie zur Windows-Version umgeleitet. Sie müssen den Pfad wahrscheinlich anpassen, wenn sich Java-Versionen in Zukunft ändern.


Hervorragend ! Vorher: Java-Version gibt Nachher Command 'Java' not found: Java - Version gibt java version "1.8.0_151"Ich wünschte, ich könnte diese Antwort mit 10 statt 1 Punkten verbessern !
Boardtc

1
Nur ein Hinweis darauf, dass dies die in Ihrem Java-Programm oder als Eigenschaften / Eingaben verwendeten Pfade "verwirrt". ZB "/tmp/somefile.txt" ist zB "c: /tmp/somefile.txt", wenn Ihr Windows Java versucht, es auszuführen und die Datei nicht gefunden wird!
Anders

2

Dieses Problem liegt daran, dass die WSL keine Windows-Verknüpfungen im Creator-Update unterstützt. /mnt/c/ProgramData/Oracle/Java/javapath/java.exeist eigentlich eine Verknüpfung zum eigentlichen Installationsverzeichnis, das C:\Program Files\Java\jre1.8.0_31\binin meinem Fall ist. Das Aufrufen von Java über den tatsächlichen Installationspfad scheint wie erwartet zu funktionieren.

Dieses Problem wurde in Build 16193 behoben


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.