TL; DR
Untuk pembaca berpengalaman:
- Temukan jalur Java; terlihat seperti ini:
C:\Program Files\Java\jdkxxxx\bin\
- Pencarian menu awal untuk "variabel lingkungan" untuk membuka dialog opsi.
- Periksa
PATH
. Hapus jalur Java lama.
- Tambahkan jalur Java baru ke
PATH
.
- Edit
JAVA_HOME
.
- Tutup dan buka kembali konsol / IDE.
Selamat datang!
Anda telah menemukan salah satu masalah teknis paling terkenal yang dihadapi pemula Java: 'xyz' is not recognized as an internal or external command...
pesan kesalahan.
Singkatnya, Anda belum menginstal Java dengan benar . Menyelesaikan instalasi Java pada Windows membutuhkan beberapa langkah manual. Anda harus selalu melakukan langkah-langkah ini setelah menginstal Java, termasuk setelah memutakhirkan JDK.
Variabel lingkungan dan PATH
(Jika Anda sudah memahami hal ini, silakan lewati tiga bagian berikutnya.)
Ketika Anda menjalankan javac HelloWorld.java
, cmd harus menentukan di mana javac.exe
berada. Ini dilakukan dengan PATH
variabel lingkungan.
Sebuah variabel lingkungan adalah sepasang khusus kunci-nilai (misalnya windir=C:\WINDOWS
). Sebagian besar datang dengan sistem operasi, dan beberapa diperlukan untuk fungsi sistem yang tepat. Daftarnya diteruskan ke setiap program (termasuk cmd) ketika dimulai. Pada Windows , ada dua jenis : variabel lingkungan pengguna dan variabel lingkungan sistem .
Anda dapat melihat variabel lingkungan Anda seperti ini:
C:\>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\craig\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
...
Variabel yang paling penting adalah PATH
. Ini adalah daftar jalur, dipisahkan oleh ;
. Ketika sebuah perintah dimasukkan ke cmd, setiap direktori dalam daftar akan dipindai untuk eksekusi yang cocok.
Di komputer saya, PATH
adalah:
C:\>echo %PATH%
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPower
Shell\v1.0\;C:\ProgramData\Microsoft\Windows\Start Menu\Programs;C:\Users\craig\AppData\
Roaming\Microsoft\Windows\Start Menu\Programs;C:\msys64\usr\bin;C:\msys64\mingw64\bin;C:\
msys64\mingw32\bin;C:\Program Files\nodejs\;C:\Program Files (x86)\Yarn\bin\;C:\Users\
craig\AppData\Local\Yarn\bin;C:\Program Files\Java\jdk-10.0.2\bin;C:\ProgramFiles\Git\cmd;
C:\Program Files\Oracle\VirtualBox;C:\Program Files\7-Zip\;C:\Program Files\PuTTY\;C:\
Program Files\launch4j;C:\Program Files (x86)\NSIS\Bin;C:\Program Files (x86)\Common Files
\Adobe\AGL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program
Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\iCLS Client\;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files
(x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\iCLS
Client\;C:\Users\craig\AppData\Local\Microsoft\WindowsApps
Ketika Anda menjalankan javac HelloWorld.java
, cmd, setelah menyadari bahwa javac
itu bukan perintah internal , mencari sistem yang PATH
diikuti oleh penggunaPATH
. Ini mekanis memasuki setiap direktori dalam daftar, dan memeriksa apakah javac.com
, javac.exe
, javac.bat
, dll hadir. Ketika ditemukan javac
, ia menjalankannya. Ketika tidak, ia akan mencetak'javac' is not recognized as an internal or external command, operable program or batch file.
Anda harus menambahkan direktori Java executables ke PATH
.
JDK vs. JRE
(Jika Anda sudah mengerti ini, silakan lewati bagian ini.)
Saat mengunduh Java, Anda ditawari pilihan antara:
- The Java Runtime Environment (JRE), yang meliputi alat yang diperlukan untuk menjalankan program Java, tapi tidak untuk mengkompilasi yang baru - mengandung
java
tapi tidak javac
.
- The Java Development Kit (JDK), yang berisi baik
java
dan javac
, bersama dengan sejumlah alat pembangunan lainnya. JDK adalah superset dari JRE.
Anda harus memastikan Anda telah menginstal JDK . Jika Anda hanya menginstal JRE, Anda tidak dapat mengeksekusi javac
karena Anda tidak memiliki instalasi kompiler Java pada hard drive Anda. Periksa daftar program Windows Anda, dan pastikan nama paket Java menyertakan kata-kata "Kit Pengembangan" di dalamnya.
Jangan gunakan set
(Jika Anda tidak berencana untuk melakukannya, silakan lewati bagian ini.)
Beberapa jawaban lain merekomendasikan untuk menjalankan beberapa variasi:
C:\>:: DON'T DO THIS
C:\>set PATH=C:\Program Files\Java\jdk1.7.0_09\bin
Jangan lakukan itu. Ada beberapa masalah utama dengan perintah itu:
- Perintah ini menghapus semua yang lain dari
PATH
dan menggantinya dengan jalur Java. Setelah menjalankan perintah ini, Anda mungkin menemukan berbagai perintah lain tidak berfungsi.
- Path Java Anda mungkin tidak
C:\Program Files\Java\jdk1.7.0_09\bin
- Anda hampir pasti memiliki versi JDK yang lebih baru, yang akan memiliki path yang berbeda.
- Yang baru
PATH
hanya berlaku untuk sesi cmd saat ini. Anda harus masuk kembali set
perintah setiap kali Anda membuka Command Prompt.
Poin # 1 dan # 2 dapat diselesaikan dengan versi yang sedikit lebih baik ini:
C:\>:: DON'T DO THIS EITHER
C:\>set PATH=C:\Program Files\Java\<enter the correct Java folder here>\bin;%PATH%
Tapi itu hanya ide yang buruk secara umum.
Temukan jalur Java
Cara yang benar dimulai dengan menemukan di mana Anda telah menginstal Java. Ini tergantung pada bagaimana Anda menginstal Java.
Pemasang exe
Anda telah menginstal Java dengan menjalankan program pengaturan. Pemasang Oracle menempatkan versi Java di bawah C:\Program Files\Java\
(atau C:\Program Files (x86)\Java\
). Dengan File Explorer atau Command Prompt, navigasikan ke direktori itu.
Setiap subfolder mewakili versi Java. Jika hanya ada satu, Anda telah menemukannya. Jika tidak, pilih yang terlihat seperti versi yang lebih baru. Pastikan nama folder dimulai dengan jdk
(tidak seperti jre
). Masukkan direktori.
Lalu masukkan bin
direktori itu.
Anda sekarang berada di direktori yang benar. Salin jalurnya. Jika di File Explorer, klik bilah alamat. Jika di Command Prompt, salin prompt.
Path Java yang dihasilkan harus dalam bentuk (tanpa tanda kutip):
C:\Program Files\Java\jdkxxxx\bin\
File zip
Anda telah mengunduh .zip yang berisi JDK. Ekstrak ke tempat acak di mana itu tidak akan menghalangi Anda; C:\Java\
adalah pilihan yang bisa diterima.
Kemudian cari bin
folder di suatu tempat di dalamnya.
Anda sekarang berada di direktori yang benar. Salin jalurnya. Ini adalah jalur Java.
Ingatlah untuk tidak pernah memindahkan folder, karena itu akan membatalkan jalur.
Buka dialog pengaturan
Itu adalah dialog untuk diedit PATH
. Ada banyak cara untuk mencapai dialog itu, tergantung pada versi Windows Anda, pengaturan UI, dan seberapa kacau konfigurasi sistem Anda.
Cobalah beberapa di antaranya:
- Mulai Menu / kotak pencarian bilah tugas »pencarian" variabel lingkungan "
- Menangkan + R »
control sysdm.cpl,,3
- Win + R »
SystemPropertiesAdvanced.exe
» Variabel Lingkungan
- File Explorer »ketik di address bar
Control Panel\System and Security\System
» Pengaturan Sistem Lanjut (paling kiri, di sidebar) »Variabel Lingkungan
- Desktop »klik kanan PC ini» Properti »Pengaturan Sistem Lanjut» Variabel Lingkungan
- Menu Mulai »klik kanan Komputer» Properti »Pengaturan Sistem Lanjut» Variabel Lingkungan
- Panel Kontrol (mode ikon) »Sistem» Pengaturan Sistem Lanjut »Variabel Lingkungan
- Panel Kontrol (mode kategori) »Sistem dan Keamanan» Sistem »Pengaturan Sistem Lanjut» Variabel Lingkungan
- Desktop »klik kanan Komputer Saya» Tingkat Lanjut »Variabel Lingkungan
- Control Panel »Sistem» Lanjutan »Variabel Lingkungan
Semua ini akan membawa Anda ke dialog pengaturan yang benar.
Jika Anda menggunakan Windows 10, Microsoft telah memberkati Anda dengan UI baru yang indah untuk diedit PATH
. Jika tidak, Anda akan melihat PATH
dalam kemuliaan penuh bertitik koma, diperas ke dalam kotak teks satu baris. Lakukan yang terbaik untuk melakukan pengeditan yang diperlukan tanpa merusak sistem Anda.
Bersih PATH
Lihatlah PATH
. Anda hampir pasti memiliki dua PATH
variabel (karena variabel lingkungan pengguna vs sistem). Anda harus melihat keduanya.
Periksa jalur Java lainnya dan hapus. Keberadaan mereka dapat menyebabkan segala macam konflik. (Misalnya, jika Anda memiliki JRE 8 dan JDK 11 dalam PATH
, dalam urutan itu, maka javac
akan memanggil kompiler Java 11, yang akan membuat .class
file versi 55 , tetapi java
akan memanggil Java 8 JVM, yang hanya mendukung hingga versi 52, dan Anda akan mengalami kesalahan versi yang tidak didukung dan tidak dapat mengkompilasi dan menjalankan program apa pun.) Menghindari masalah ini dengan memastikan Anda hanya memiliki satu jalur Java PATH
. Dan saat Anda melakukannya, Anda juga dapat menghapus versi Java yang lama juga. Dan ingat bahwa Anda tidak perlu memiliki JDK dan JRE.
Jika sudah C:\ProgramData\Oracle\Java\javapath
, hapus juga . Oracle bermaksud untuk memecahkan masalah kerusakan jalur Java setelah peningkatan dengan membuat tautan simbolik yang akan selalu mengarah ke instalasi Java terbaru. Sayangnya, sering berakhir menunjuk ke lokasi yang salah atau tidak berfungsi . Lebih baik menghapus entri ini dan mengelola jalur Java secara manual.
Sekarang juga merupakan kesempatan yang baik untuk melakukan pemeliharaan umum PATH
. Jika Anda memiliki jalur yang berkaitan dengan perangkat lunak yang tidak lagi diinstal pada PC Anda, Anda dapat menghapusnya. Anda juga dapat mengacak urutan jalur (jika Anda peduli dengan hal-hal seperti itu).
Tambahkan PATH
Sekarang ambil path Java yang Anda temukan tiga langkah yang lalu, dan letakkan di sistem PATH
.
Seharusnya tidak masalah di mana dalam daftar jalur baru Anda pergi; Menempatkannya di akhir adalah pilihan yang bagus.
Jika Anda menggunakan UI pra-Windows 10, pastikan Anda telah menempatkan titik koma dengan benar. Harus ada satu yang memisahkan setiap jalur dalam daftar.
Sebenarnya tidak banyak yang bisa dikatakan di sini. Cukup tambahkan path ke PATH
dan klik OK.
Set JAVA_HOME
Saat Anda melakukannya, Anda mungkin juga mengaturnya JAVA_HOME
. Ini adalah variabel lingkungan lain yang juga harus mengandung jalur Java. Banyak program Java dan non-Jawa, termasuk sistem Java build populer Maven dan Gradle , akan melempar kesalahan jika tidak diatur dengan benar.
Jika JAVA_HOME
tidak ada, buat sebagai variabel lingkungan sistem baru. Atur ke jalur direktori Java tanpa bin/
direktori, yaitu C:\Program Files\Java\jdkxxxx\
.
Ingatlah untuk mengedit JAVA_HOME
setelah memutakhirkan Java juga.
Tutup dan buka kembali Command Prompt
Meskipun Anda telah memodifikasi PATH
, semua program yang berjalan, termasuk cmd, hanya melihat yang lama PATH
. Ini karena daftar semua variabel lingkungan hanya disalin ke dalam program ketika mulai dijalankan; setelah itu, hanya berkonsultasi salinan yang di-cache.
Tidak ada cara yang baik untuk me - refresh variabel lingkungan cmd , jadi cukup tutup Command Prompt dan buka lagi. Jika Anda menggunakan IDE, tutup dan buka kembali juga.
Lihat juga