Bagaimana cara menggunakan instalasi windows java dari BashOnWindows10?

10

Saya tidak dapat menjalankan versi windows java.exe dari BashOnWindows10. Itu hadir di PATH, tetapi doa gagal diam-diam. Tujuan saya adalah untuk menghindari menginstal JDK / JRE lagi di WSL. Saat saya menjalankan pembaruan Pencipta, saya mengharapkan untuk dapat menjalankan aplikasi windows apa pun. Adakah ide mengapa ini terjadi? Namun saya berhasil meluncurkan instalasi windows Python.

pesta

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
sumber
Ini tidak terkait dengan Java, itu adalah masalah dengan semua binari Windows. Lihat bug ini untuk diskusi dan beberapa cara mengatasi
eckes

Jawaban:

8

Inilah cara saya membuat Java "berfungsi" untuk instalasi WSL saya.

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

Yang dilakukan adalah membuat tautan simbolik di /binfolder Anda ke biner Windows Java Anda. Setiap kali WSL mencoba memanggil Java sekarang, itu dialihkan ke versi Windows. Anda mungkin perlu menyesuaikan jalur saat versi Java berubah di masa mendatang.

detuur
sumber
Luar biasa ! Sebelum: Java -versi memberi Command 'Java' not foundSetelah: Java - versi memberi java version "1.8.0_151"Saya berharap saya bisa naik jawaban ini seperti 10 poin, bukan 1!
boardtc
1
Hanya kepala bahwa ini akan "membingungkan" dan jalur yang digunakan dalam program Java Anda atau sebagai properti / input. Misalnya "/tmp/somefile.txt" akan berupa "c: /tmp/somefile.txt" ketika Windows Java Anda mencoba menjalankannya dan menghasilkan file yang tidak ditemukan!
Anders
2

Masalah ini karena WSL tidak mendukung pintasan windows dalam pembaruan Creator. /mnt/c/ProgramData/Oracle/Java/javapath/java.exesebenarnya merupakan jalan pintas ke direktori instalasi aktual yang ada C:\Program Files\Java\jre1.8.0_31\bindalam kasus saya. Meminta java dari jalur instalasi yang sebenarnya tampaknya berfungsi seperti yang diharapkan.

Masalah ini diselesaikan di build 16193

Abhiram
sumber
0

Jika Anda ingin menjalankan java.exe di dalam subsistem linux, Anda dapat mengikuti jawaban ini: https://stackoverflow.com/a/54151117/2751561

Jika Anda ingin sebaliknya Anda dapat memanggil java bin di cmd seperti ini:

wsl java -version
ViniciusCR
sumber