Kita perlu membuat perbedaan antara dua variabel lingkungan yang dibahas di sini secara bergantian. Salah satunya adalah variabel JAVA_HOME . Yang lainnya adalah variabel Path . Setiap proses yang mereferensikan variabel JAVA_HOME mencari jalur pencarian ke JDK, bukan JRE. Penggunaan variabel JAVA_HOME tidak dimaksudkan untuk kompiler Java itu sendiri. Kompiler mengetahui lokasinya sendiri. Variabel dimaksudkan untuk perangkat lunak lain agar lebih mudah menemukan kompiler. Variabel ini biasanya digunakan oleh perangkat lunak IDE untuk mengkompilasi dan membangun aplikasi dari kode sumber Java. Sebaliknya, juru bahasa CMD Windows, dan banyak perangkat lunak pihak pertama dan ketiga lainnya merujuk variabel Path, bukan variabel JAVA_HOME.
Gunakan case 1: Kompilasi dari CMD
Jadi misalnya, jika Anda tidak menggunakan perangkat lunak IDE, dan Anda hanya ingin dapat mengkompilasi dari CMD, terlepas dari direktori kerja Anda saat ini, maka yang Anda inginkan adalah mengatur variabel Path dengan benar. Dalam kasus Anda, Anda bahkan tidak memerlukan variabel JAVA_HOME. Karena CMD menggunakan Path, bukan JAVA_HOME untuk menemukan kompiler Java.
Use case 2: Kompilasi dari IDE
Namun, jika Anda sedang menggunakan beberapa perangkat lunak IDE, maka Anda harus melihat dokumentasi pertama-tama. Mungkin diperlukan JAVA_HOME untuk diatur, tetapi mungkin juga menggunakan nama variabel lain untuk tujuan yang sama. Standar de-facto selama bertahun-tahun adalah JAVA_HOME, tetapi ini mungkin tidak selalu demikian.
Use case 3: Kompilasi dari IDE dan CMD
Jika selain perangkat lunak IDE Anda juga ingin dapat mengkompilasi dari CMD, terlepas dari direktori kerja Anda saat ini, maka selain itu variabel JAVA_HOME Anda juga mungkin perlu menambahkan jalur pencarian JDK ke variabel Path.
JAVA_HOME vs. Path
Jika masalah Anda berkaitan dengan kompilasi Java, maka Anda ingin memeriksa variabel JAVA_HOME, dan Path (jika ada). Jika masalah Anda terkait dengan menjalankan aplikasi Java, maka Anda ingin memeriksa variabel Path Anda.
Variabel jalur digunakan secara universal di semua sistem operasi. Karena didefinisikan oleh sistem, dan karena itu adalah variabel default yang digunakan untuk menemukan JRE, hampir tidak pernah ada masalah menjalankan aplikasi Java. Terutama tidak pada Windows di mana installer perangkat lunak biasanya mengatur semuanya untuk Anda. Tetapi jika Anda menginstal secara manual, hal yang paling aman untuk dilakukan mungkin melewatkan variabel JAVA_HOME sama sekali dan hanya menggunakan variabel Path untuk semuanya, baik untuk JDK dan JRE. Setiap versi terbaru dari perangkat lunak IDE harus dapat mengambil dan menggunakannya.
Symlinks
Tautan simbolis mungkin menyediakan cara lain untuk merujuk jalur pencarian JDK dengan membonceng salah satu variabel lingkungan yang ada.
Saya tidak yakin tentang rilis Oracle / Sun JDK / JRE versi sebelumnya, tetapi setidaknya installer untuk jdk1.8.0_74 menambahkan path pencarian C:\ProgramData\Oracle\Java\javapath
ke variabel Path, dan menempatkannya di awal nilai string. Direktori ini berisi tautan simbolis ke java.exe, javaw.exe dan javaws.exe di direktori JRE.
Jadi setidaknya dengan Java 8 JDK, dan mungkin Java 8 JRE standalone, tidak ada konfigurasi variabel lingkungan yang perlu dilakukan untuk JRE. Selama Anda menggunakan paket penginstal untuk mengaturnya. Mungkin ada perbedaan pada instalasi Windows Anda. Perhatikan bahwa JRE Oracle dibundel dengan JDK.
Jika Anda pernah menemukan bahwa konfigurasi Java JDK Anda menggunakan versi kompiler yang salah, atau tampaknya berfungsi dengan sihir, tanpa didefinisikan secara eksplisit (tanpa menggunakan mantra), maka Anda mungkin memiliki symlink di suatu tempat di variabel lingkungan Anda . Jadi, Anda mungkin ingin memeriksa symlink.