Saya mengalami kesalahan saat mencoba mengompilasi program Java.
Saya menggunakan Windows (ini adalah masalah khusus Windows) dan saya telah menginstal JDK terbaru.
Saya telah mencoba solusi yang melibatkan PATH
variabel, tetapi kesalahan tetap ada.
Output konsol:
C:\>set path=C:Program Files (x86)\Java\jdk1.7.0\bin
C:\>javac Hello.java
'javac' is not recognized as an internal or external command,
operable program or batch file.
java
path
environment-variables
command-prompt
javac
pengguna987137
sumber
sumber
Jawaban:
TL; DR
Untuk pembaca berpengalaman:
C:\Program Files\Java\jdkxxxx\bin\
PATH
. Hapus jalur Java lama.PATH
.JAVA_HOME
.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 manajavac.exe
berada. Ini dilakukan denganPATH
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:
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:Ketika Anda menjalankan
javac HelloWorld.java
, cmd, setelah menyadari bahwajavac
itu bukan perintah internal , mencari sistem yangPATH
diikuti oleh penggunaPATH
. Ini mekanis memasuki setiap direktori dalam daftar, dan memeriksa apakahjavac.com
,javac.exe
,javac.bat
, dll hadir. Ketika ditemukanjavac
, 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:
java
tapi tidakjavac
.java
danjavac
, 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:
Jangan lakukan itu. Ada beberapa masalah utama dengan perintah itu:
PATH
dan menggantinya dengan jalur Java. Setelah menjalankan perintah ini, Anda mungkin menemukan berbagai perintah lain tidak berfungsi.C:\Program Files\Java\jdk1.7.0_09\bin
- Anda hampir pasti memiliki versi JDK yang lebih baru, yang akan memiliki path yang berbeda.PATH
hanya berlaku untuk sesi cmd saat ini. Anda harus masuk kembaliset
perintah setiap kali Anda membuka Command Prompt.Poin # 1 dan # 2 dapat diselesaikan dengan versi yang sedikit lebih baik ini:
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\
(atauC:\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 sepertijre
). 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):
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:
control sysdm.cpl,,3
SystemPropertiesAdvanced.exe
» Variabel LingkunganControl Panel\System and Security\System
» Pengaturan Sistem Lanjut (paling kiri, di sidebar) »Variabel LingkunganSemua 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 melihatPATH
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 duaPATH
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, makajavac
akan memanggil kompiler Java 11, yang akan membuat.class
file versi 55 , tetapijava
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 JavaPATH
. 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 tanpabin/
direktori, yaituC:\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 lamaPATH
. 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
sumber
coba ini .. Saya sudah juga tetapi sekarang diselesaikan di XP ..
sumber
Anda salah mengetik
set
perintah - Anda melewatkan garis miring terbalik setelahnyaC:
. Harus:sumber
C:\Program Files (x86)\Java\jdk1.7.0
? Jika demikian, apa yang terjadi jika Anda melakukannyacd C:\Program Files (x86)\Java\jdk1.7.0\bin
kemudianjavac -version
?Jalankan yang berikut ini dari command prompt:
set Path="C:\Program Files\Java\jdk1.7.0_09\bin"
atauset PATH="C:\Program Files\Java\jdk1.7.0_09\bin"
Saya sudah mencoba ini dan berfungsi dengan baik.
sumber
Jika perintah java berfungsi dan mendapatkan masalah dengan javac. lalu cek dulu di folder jdk file javac.exe direktori apakah ada atau tidak. Jika ada file javac.exe, tetapkan
JAVA_HOME
sebagai variabel Sistem.sumber
Periksa variabel lingkungan Anda.
Dalam kasus saya, saya telah menetapkan JAVA_HOME dalam variabel Sistem dan juga dalam variabel Akun Pengguna saya dan yang terakhir diatur ke versi Java yang salah . Saya juga punya masalah yang sama dengan variabel Path.
Setelah menghapus JAVA_HOME dari variabel Akun Pengguna saya dan menghapus jalur yang salah dari variabel Path itu berfungsi dengan benar.
sumber