javac tidak berfungsi di command prompt windows

132

Saya mencoba menggunakan javacdengan command prompt windows, tetapi tidak berfungsi.

Setelah menambahkan direktori "C:\Program Files\Java\jdk1.6.0_16\bin\"ke akhir PATHvariabel lingkungan, javaperintah berfungsi dengan baik, tetapi menggunakan javacmemberi saya kesalahan berikut:

'javac' tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dijalankan atau file batch.

Domenik
sumber

Jawaban:

162

Jika Anda menambahkannya di panel kontrol saat command prompt terbuka, itu tidak akan memengaruhi prompt perintah Anda saat ini. Anda harus keluar dan membuka kembali atau melakukannya:

set "path=%path%;c:\program files\java\jdk1.6.0_16\bin"

Dengan cara memeriksa, jalankan:

echo %path%

dari command prompt Anda dan beri tahu kami apa itu.

Jika tidak, make yakin ada adalah sebuah javac dalam direktori yang dengan mencoba:

"c:\program files\java\jdk1.6.0_16\bin\javac.exe"

dari command prompt. Anda juga dapat mengetahui mana yang dapat dieksekusi (jika ada) yang digunakan dengan perintah:

for %i in (javac.exe) do @echo %~$PATH:i

Ini adalah trik rapi yang mirip dengan whichdan / atau whenceperintah di beberapa sistem operasi UNIX.

paxdiablo
sumber
11
ah ya, yang harus saya lakukan adalah membuka kembali command prompt dan itu berfungsi dengan baik, terima kasih!
Domenic
1
+1. "For% i in (java.exe) do @echo% ~ $ PATH: i" baru saja menyelamatkan hari saya. Saya hanya pengguna Windows sesekali dan saya tidak tahu mungkin ada java.exe lain yang tersembunyi di c: \ windows \ system :)
david a.
1
Perintah set path di atas tidak berfungsi untuk saya di bawah windows 7. Saya harus menggunakan set path = "% path%; c: \ program files \ java \ jdk1.6.0_16 \ bin. Itu tanpa tanda kutip! Saya tidak terbiasa dengan windows command line tetapi tampaknya tanda kutip dilestarikan. Jadi memiliki mereka di% path% akan membuatnya sama sekali tidak dapat digunakan.
user716468
@ user716468, Ada cara GUI untuk melakukan ini di windows alih-alih baris perintah. Jika Anda berada di windows 7, cukup ketik var di pencarian menu mulai dan klik Edit Variabel Lingkungan. Jika Anda menggunakan Windows XP, klik kanan Komputer Saya, Klik properti, buka tab lanjut dan klik tombol variabel Lingkungan di sisi bawah. Di sana Anda dapat menemukan dua kotak daftar. Temukan satu dengan nama PATH dari kotak daftar paling bawah dan klik Edit. Sekarang tambahkan path ke JDK Anda yang diawali dengan tanda titik koma. Kamu sudah selesai!
fz_salam
ada juga perintah "di mana" di baris perintah windows terbaru
x29a
87

OS Windows mencari direktori saat ini dan direktori yang tercantum dalam variabel lingkungan PATH untuk program yang dapat dieksekusi. Program-program JDK (seperti Java compiler javac.exe dan Java runtime java.exe) berada di direktori "\ bin" (di mana menunjukkan direktori yang diinstal JDK, misalnya, C: \ Program Files \ Java \ jdk1.8.0_xx). Anda harus memasukkan direktori "\ bin" di PATH.

Untuk mengedit variabel lingkungan PATH di Windows XP / Vista / 7/8:

  1. Panel Kontrol ⇒ Sistem ⇒ Pengaturan sistem lanjutan

  2. Beralih ke tab "Advanced" ⇒ Variabel Lingkungan

  3. Di "System Variables", gulir ke bawah untuk memilih "PATH" ⇒ Edit

((sekarang baca 3 kali berikut sebelum melanjutkan, TIDAK ADA UNDO ))

Dalam bidang "Nilai variabel", INSERT "c: \ Program Files \ Java \ jdk1.8.0_xx \ bin" (Ganti xx dengan nomor pemutakhiran dan VERIFIKASI bahwa ini adalah direktori biner JDK Anda !!!) DI DEPAN semua yang ada direktori, diikuti oleh titik koma (;) yang memisahkan direktori biner JDK dari sisa direktori yang ada. JANGAN HAPUS setiap entri yang ada; jika tidak, beberapa aplikasi yang ada mungkin tidak berjalan.

Variable name  : PATH
Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[existing entries...]

Tangkapan layar

mike
sumber
Untuk Langkah 4. Saya menemukan bahwa saya harus memilih bukan jre <yournumber>, tetapi jdk <yournumber>. Kemudian semuanya bekerja dengan baik.
Morgan Kenyon
Rapi dan jelas! Jawaban Terbaik. Bekerja untukku.
M_R_K
Dalam kasus saya, untuk langkah 4, saya membuka jdk. Pada dasarnya, saya punya ini untuk PATH: C: \ Program Files \ Java \ jdk1.7.0_67 \ bin. javac.exe tidak di jre tetapi di jdk.
sedeh
Bekerja untukku :)
RAJESH KUMAR ARUMUGAM
34

Setelah lama Google, saya mengetahui bahwa javac.exe akan berada di dalam JDK (C: \ Program Files \ Java \ jdk (nomor versi) \ bin) tidak di dalam JRE (C: \ Program Files (x86) \ Java \ jre7 \ bin) "JRE tidak datang dengan kompiler. Ini (JRE) hanyalah lingkungan runtime java. Yang Anda butuhkan adalah kit pengembangan Java." untuk menggunakan kompiler javac

javac tidak akan berfungsi jika Anda menunjuk bin di dalam jre

Untuk menggunakan javac dalam cmd, JDK harus diinstal di sistem Anda ...

Untuk jalur javac

path = C: \ Program Files (x86) \ Java \ jre7 \ bin ini salah

path = C: \ Program Files \ Java \ jdk (nomor versi) \ bin ini benar

Pastikan "javac.exe" ada di dalam "C: \ Program Files \ Java \ jdk (nomor versi) \ bin"

Jangan bingung dengan JRE dan JDK keduanya sama sekali berbeda

jika Anda tidak memiliki JDK, unduh dari tautan ini

https://jdk.java.net/

atau

http://www.oracle.com/technetwork/java/javase/downloads/index.html

referensi thread untuk JDK VS JRE Apa perbedaan antara JDK dan JRE?

TechDog
sumber
6

Saya tahu ini mungkin bukan kesalahan spesifik Anda, tetapi saya pernah memiliki ruang terdepan di jalur saya dan java akan berfungsi tetapi javac tidak.

Untuk apa nilainya, saya menawarkan saran bijak: "Periksa Jalanmu dengan cermat".

Sam
sumber
5

Coba solusinya di sini: http://techdem.centerkey.com/2009/05/javahome-command-script.html

Ini jauh lebih kuat untuk diubah - seperti ketika Anda meningkatkan JDK atau JRE, karena tidak ada jalur kode keras.

Solusi cepat (jika Anda tidak ingin membaca blog) adalah

C:\>for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i
C:\>set PATH=%PATH%;%JAVA_HOME%

Anda kemudian dapat menambahkan baris ini ke skrip startup / login.

Jason
sumber
2
Untuk menjalankan javac seperti itu saya harus menggunakan "set PATH =% PATH%;% JAVA_HOME% \ bin" (perhatikan \ bin yang ditambahkan).
user31389
4

Saya hanya harus melakukan ini untuk mendapatkan ini berfungsi pada windows 7 64.

Buka prompt perintah (cmd.exe) dan ketik:

set CLASSPATH=C:\Program Files\Java\jdk1.7.0_01\bin

Pastikan Anda membuka kembali semua perintah yang dijalankan, meminta Windows untuk memperbarui variabel lingkungan.

Ryan Summey
sumber
1
Saya kira pengaturan classpath lebih baik di sini. Saya tidak akan menggunakan variabel CLASSPATH, terutama tidak pada Windows di mana ia bersifat global dan memengaruhi banyak JRE ...
eckes
4

Oke ini tidak selalu terjadi tetapi banyak dari kita telah melakukan kesalahan ini di masa lalu dan beberapa dari mereka masih tidak menyadarinya, yaitu, setiap kali Anda menambahkan jalur (jalur apa pun) dari variabel lingkungan apa pun, Anda Kemungkinan besar akan mengenai spasi setelah "titik koma" (seperti biasanya, setelah "titik" saat mengetik editor).

Ini akan menciptakan ruang terdepan di path misalnya "C: \ Program Files \ Java \ jdk1.6.0 \ bin" dan karenanya "javac.exe" tidak akan ditemukan oleh sistem.

Desai Melayu
sumber
2

Ubah folder "jdk1.7.0_45" "jdk1_7_0_60" dan perbarui lintasan di lingkungan Windows. Jika tidak, jalur mengabaikan titik di depan yang merupakan singkatan dari file tersembunyi dan folder tidak ditampilkan dalam string PATH.

NewDev
sumber
0

"; C: \ Program Files \ Java \ jdk1.6.0 \ bin" suatu saat Anda mungkin lupa meletakkan tanda koma di jalur terakhir yang ada.

Sundararajan wasuvan
sumber
0

Saya menghadapi masalah yang sama persis bahwa java akan bekerja tetapi javac tidak akan di prompt cmd di Windows 8.

Masalah terjadi karena saya lupa menghapus '>'di akhir nama jalur, yaitu, seperti ini:

C:\Program Files\Java\jdk*\bin>

di mana seharusnya seperti ini:

C:\Program Files\Java\jdk*\bin
Kevin
sumber
0

Path hanya akan ditetapkan untuk akun administrator. Karena itu penting untuk meluncurkan command prompt sebagai administrator, jika Anda belum melakukannya.


sumber
0

Pastikan Anda tidak mengizinkan spasi (spasi putih) di antara jalur di variabel Path. Masalah saya adalah saya memiliki ruang putih dan saya percaya Windows memperlakukannya sebagai NULL dan tidak membaca jalur saya untuk Java.

TRHUMMEL
sumber
0

Saya mengalami masalah yang sama yang diposting di judul ini. Java akan berfungsi, tetapi javactidak di command prompt Windows (cmd.exe ).

Bagi saya, itu hanya karena saya telah menempatkan spasi ketika menambahkan C:\Program Files\Java\jdk1.8.0\binke akhir %PATH%variabel lingkungan saya .
Hapus ruang antara ;jalur file dan selanjutnya.

Taiton
sumber
0

Saya menghargai ini adalah pertanyaan lama sekarang tetapi solusi saya bukan jawaban di sini jadi posting itu kalau-kalau ada orang lain yang mencoba sisanya.

Dalam kasus saya, instalasi Java JRE sebelumnya (di ProgramData / Oracle / Java) memiliki variabel path di bagian atas daftar variabel path saya. Isi dari jalur "Oracle" itu memiliki java.exe tetapi bukan javac.exe. Saya menambahkan path JDK lengkap saya ke bagian atas daftar variabel path, di depan "Oracle", dan kemudian mengambil javac.exe serta java.

Neil
sumber
0
for /d %i in ("\Program Files\Java\jdk*") do set JAVA_HOME=%i
set JAVA_HOME

solusi ini berhasil untuk saya

Cristian Agudelo
sumber
Saya sarankan untuk menambahkan lebih banyak anotasi ke jawaban Anda secara langsung alih-alih hanya memberikan tautan: tautannya mungkin rusak. Hormat kami
YakovL
-3

Ketika saya mencoba untuk membuat .java ke .class perintah Javac tidak berhasil. Saya mendapatkannya bekerja dengan pergi ke C: \ Program Files (x86) \ Java \ jdk1.7.0_04 \ bin dan ketika saya berada di direktori itu saya mengetik Javac.exe C \ Test \ test.java dan itu membuat kelas dengan itu taktik Cobalah itu.

Some one
sumber
-7

Berikan sebagai "C: \ Program Files \ Java \ jdk1.6.0_16 \ bin". Hapus backslash itu akan berhasil

valli
sumber
2
Saya pikir itu tidak benar. Saya dapat mengatur jalur saya menjadi "C: \ Program Files \ Java \ jdk1.6.0_16 \ bin \" (dengan trailing slash) dan masih berfungsi dengan baik.
paxdiablo