Windows hakkında daha fazlası ... değişken java.home her zaman çalıştırılan ikili dosya ile aynı konum değildir.
Denis Menace söylediği gibi, yükleyici koyar Java içine dosyaları Program Files aynı zamanda, java.exe içine System32 . Java ile ilgili hiçbir şey olmadan java -version hala çalışabilir. Ancak PeterMmm programı çalıştırıldığında java.home olarak Program Files'ın değerini bildirir , bu yanlış değildir (Java orada yüklüdür), ancak çalıştırılmakta olan gerçek ikili System32'da bulunur .
Yerini avlamak için bir yolu java.exe ikili, uzun süre çalışan bir program tutmak PeterMmm koduyla aşağıdaki satırı ekleyin:
try{Thread.sleep(60000);}catch(Exception e) {}
Derleyin ve çalıştırın, sonra java.exe görüntüsünün konumunu avlayın . Örneğin Windows 7'de görev yöneticisini açın, java.exe girişini bulun , sağ tıklayın ve 'dosya konumunu aç'ı seçin, bu Java ikili dosyasının tam konumunu açar. Bu durumda System32 olur .