Saya memiliki masalah yang sama pada mesin linux. Saya agak frustrasi pada awalnya, karena saya telah menginstal JDK dan JRE. Saya menggunakan versi 1.6, 1.7 dan 1.8 secara bersamaan, dan saya telah banyak bermain dengan alternatif untuk mengatur semuanya dengan benar.
Masalahnya cukup bodoh untuk dipecahkan, namun kontra-intuitif. Sementara saya menggunakan JDK yang benar, saya memperhatikan jalannya alat-alat yang dikeluhkan oleh para pakar - ia mengharapkannya menjadi
$JAVA_HOME\..\lib\tools.jar
The $JAVA_HOME
variabel menunjuk langsung ke saya jdk
folder ( /usr/local/java
yang juga benar $PATH
masuk dan link di sym alternatif). Sebenarnya mencari lib
folder di luar direktori java, karena:
$JAVA_HOME\..\lib\tools.jar
akan memutuskan untuk
/usr/local/lib/tools.jar
dan itu bukan lokasi yang valid.
Untuk mengatasinya, $JAVA_HOME
variabel seharusnya menunjuk ke lokasi ini /usr/local/java/jre
(dengan asumsi jalur JDK adalah /usr/local/java
) - sebenarnya ada jre
folder di dalam direktori instalasi JDK, yang datang dengan masing-masing JDK. Pengaturan baru ini akan menyebabkan pakar melihat direktori JRE, yang merupakan bagian dari JDK:
$JAVA_HOME\..\lib\tools
yang sekarang memutuskan untuk
/usr/local/java/jre/../lib/tools.jar
dan akhirnya
/usr/local/java/lib/tools.jar
di situlah tempat yang tools.jar
benar - benar berada.
Jadi, bahkan dari Anda memang menggunakan JDK alih-alih JRE, $ JAVA_HOME harus menunjuk ke JRE. Ingat, alternatif OS masih harus merujuk ke JDK.