Lebih lanjut tentang Windows ... variabel java.home tidak selalu lokasi yang sama dengan biner yang dijalankan.
Seperti yang dikatakan Denis The Menace, penginstal menempatkan file Java ke dalam Program Files , tetapi juga java.exe ke System32 . Dengan tidak ada yang terkait Java di jalur java-versi masih bisa bekerja. Namun ketika program PeterMmm dijalankan, ia melaporkan nilai Program Files sebagai java.home , ini tidak salah (Java diinstal di sana) tetapi biner aktual yang dijalankan terletak di System32 .
Salah satu cara untuk memburu lokasi biner java.exe , tambahkan baris berikut ke kode PeterMmm untuk menjaga program berjalan lebih lama:
try{Thread.sleep(60000);}catch(Exception e) {}
Kompilasi dan jalankan, lalu cari lokasi gambar java.exe . Misalnya di Windows 7 buka task manager, temukan entri java.exe , klik kanan dan pilih 'buka file lokasi', ini membuka lokasi yang tepat dari biner Java. Dalam hal ini adalah System32 .