javac Windows komut isteminde çalışmıyor


132

javacWindows komut istemiyle kullanmaya çalışıyorum ama çalışmıyor.

Dizini ortam değişkeninin "C:\Program Files\Java\jdk1.6.0_16\bin\"sonuna ekledikten sonra PATH, javakomut sorunsuz çalışıyor, ancak kullanmak javacbana şu hatayı veriyor:

'javac' dahili veya harici bir komut, çalıştırılabilir program veya toplu iş dosyası olarak tanınmaz.


Yanıtlar:


162

Komut isteminiz açıkken kontrol paneline eklediyseniz, bu geçerli komut isteminizi etkilemez. Çıkmanız ve yeniden açmanız veya basitçe yapmanız gerekecek:

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

Kontrol ederek, yürütün:

echo %path%

komut isteminizden ve ne olduğunu bize bildirin.

Aksi takdirde, marka olmadığından emin olduğunu deneyerek bu dizine bir javac:

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

komut isteminden. Ayrıca hangi yürütülebilir dosyanın (varsa) kullanıldığını şu komutla anlayabilirsiniz :

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

Bu, bazı UNIX tipi işletim sistemlerindeki whichve / veya whencekomutlarına benzer düzgün bir hiledir .


11
ah evet, tek yapmam gereken komut istemini yeniden açmaktı ve iyi çalıştı, teşekkürler!
Domenic

1
+1. "(Java.exe) içindeki% i için @echo% ~ $ PATH: i" günümü kurtardı. Ben sadece ara sıra bir Windows kullanıcısıyım ve c: \ windows \ system içinde başka bir gizli java.exe olabileceğini bilmiyordum :)
david a.

1
Yukarıdaki set path komutu benim için Windows 7 altında çalışmıyor. Set path = "% path%; c: \ program files \ java \ jdk1.6.0_16 \ bin. Bu tırnak işaretleri olmadan! Windows komut satırı ile ama görünüşe göre alıntılar korunmuş. Bu yüzden onları% yol% içinde bulundurmak onu tamamen kullanılamaz hale getirecek.
user716468

@ user716468, Bunu komut satırı yerine pencerelerde yapmanın bir GUI yolu var. Windows 7'deyseniz, başlat menüsü aramasına var yazın ve Ortam Değişkenlerini Düzenle'ye tıklayın. Windows XP kullanıyorsanız, Bilgisayarım'a sağ tıklayın, Özellikler'e tıklayın, gelişmiş sekmesine gidin ve alt taraftaki Ortam değişkenleri düğmesine tıklayın. Orada iki liste kutusu bulabilirsiniz. Alttaki liste kutusundan PATH adında olanı bulun ve Düzenle'ye tıklayın. Şimdi JDK'nıza bir noktalı virgül koyarak yolunu ekleyin . Sen bittin!
fz_salam

son Windows komut satırlarında bir "nerede" komutu da vardır
x29a

87

Windows işletim sistemi, yürütülebilir programlar için geçerli dizini ve PATH ortam değişkeninde listelenen dizinleri arar. JDK'nın programları (Java derleyicisi javac.exe ve Java runtime java.exe gibi) "\ bin" dizininde bulunur (burada JDK yüklü dizini belirtir, örneğin C: \ Program Files \ Java \ jdk1.8.0_xx). PATH içine "\ bin" dizinini eklemeniz gerekir.

Windows XP / Vista / 7 / 8'de PATH ortam değişkenini düzenlemek için:

  1. Kontrol Paneli ⇒ Sistem ⇒ Gelişmiş sistem ayarları

  2. "Gelişmiş" sekmesine geçin ⇒ Ortam Değişkenleri

  3. "Sistem Değişkenleri" nde, "YOL" u seçmek için aşağı kaydırın ⇒ Düzenle

((şimdi devam etmeden önce aşağıdaki 3 kez okuyun, GERİ ALINMAMAKTADIR ))

"Değişken değeri" alanında, INSERT "c: \ Program Files \ Java \ jdk1.8.0_xx \ bin" (xx'i yükseltme numarasıyla değiştirin ve bunun JDK'nızın ikili dizini olduğunu DOĞRULAYIN !!!) dizinler, ardından JDK'nın ikili dizinini mevcut dizinlerin geri kalanından ayıran noktalı virgül (;). Mevcut girişleri SİLMEYİN; aksi takdirde bazı mevcut uygulamalar çalışmayabilir.

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

Ekran görüntüsü


Adım 4 için jre <yourn> değil, jdk <yournumber> seçmem gerektiğini fark ettim. Sonra her şey yolunda gitti.
Morgan Kenyon

Düzgün ve Net! En iyi cevap. Benim için çalıştı.
M_R_K

Benim durumumda, 4. adım için jdk'yi açtım. Temelde, PATH: C: \ Program Files \ Java \ jdk1.7.0_67 \ bin için bunu aldım. javac.exe jre'de değil jdk'de idi.
sedeh

Benim İçin Çalışıyor :)
RAJESH KUMAR ARUMUGAM

34

Uzun bir Google'dan sonra, javac.exe'nin JRE (C: \ Program Files (x86) \ Java \ jre7) içinde değil JDK (C: \ Program Files \ Java \ jdk (sürüm numarası) \ bin) içinde olacağını öğrendim. \ bin) "JRE bir derleyici ile birlikte gelmez. Bu (JRE) sadece bir java çalışma ortamıdır. İhtiyacınız olan şey Java geliştirme kitidir." derleyici javac'ı kullanmak için

jre'nin içindeki çöp kutusunu işaret ediyorsanız javac çalışmaz

Javac'ı cmd'de kullanmak için sisteminize JDK kurulu olmalıdır ...

Javac yolu için

yol = C: \ Program Dosyaları (x86) \ Java \ jre7 \ bin bu yanlış

yol = C: \ Program Files \ Java \ jdk (sürüm numarası) \ bin bu doğru

"Javac.exe" nin "C: \ Program Files \ Java \ jdk (sürüm numarası) \ bin" içinde olduğundan emin olun

JRE ve JDK ile karıştırmayın, ikisi de tamamen farklı

JDK'nız yoksa lütfen bu bağlantıdan indirin

https://jdk.java.net/

veya

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

JDK VS JRE için referans iş parçacığı JDK ve JRE arasındaki fark nedir?


6

Bunun senin hatan olmayabileceğini biliyorum, ama bir zamanlar yolumda önde gelen bir boşluk vardı ve java işe yarayacaktı ama javac çalışmayacaktı.

Değeri ne olursa olsun, bilge bir öğüt veriyorum: "Yolunuzu yakından inceleyin".


5

Çözümleri burada deneyin: http://techdem.centerkey.com/2009/05/javahome-command-script.html

Sabit kodlanmış bir yol olmadığından, JDK veya JRE'yi yükselttiğinizde olduğu gibi, değiştirilmeleri çok daha sağlamdır.

Hızlı çözüm (blogu okumak istemiyorsanız)

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

Daha sonra bu satırları bir başlangıç ​​/ oturum açma komut dosyasına ekleyebilirsiniz.


2
Bu şekilde javac'ı çağırmak için "set PATH =% PATH%;% JAVA_HOME% \ bin" kullanmak zorunda kaldım (eklenen \ bin'e dikkat edin).
user31389

4

Bunu Windows 7 64'te çalışması için yapmak zorunda kaldım.

Bir komut istemi (cmd.exe) açın ve şunu yazın:

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

Ortam değişkenini de güncellemek için çalışan tüm komut istemini Windows'u yeniden açtığınızdan emin olun.


1
Sanırım burada sınıf yolunu bozmak daha iyidir. CLASSPATH değişkenini, özellikle de genel olduğu ve birden çok
JRE'yi

4

Tamam, bu her zaman böyle olamaz, ancak çoğumuz geçmişte bu hatayı yaptık ve bunlardan birkaçı hala bunun farkında değil, yani herhangi bir ortam değişkeninin yolunu (herhangi bir yolu) her eklediğinizde, siz "noktalı virgülden" hemen sonra boşluk çubuğuna basmanız muhtemeldir (normalde yaptığınız gibi, bir düzenleyicide yazarken "nokta" dan sonra).

Bu, yolda önde gelen bir boşluk yaratacaktır, örneğin "C: \ Program Files \ Java \ jdk1.6.0 \ bin" ve bu nedenle "javac.exe" sistem tarafından bulunmayacaktır.


2

"Jdk1.7.0_45" "jdk1_7_0_60" klasörünü değiştirin ve Windows ortamında yolu güncelleyin. Aksi takdirde, yol öndeki gizli dosya anlamına gelen noktayı yok sayar ve böylece klasör PATH dizelerinde görüntülenmez.


0

"; C: \ Program Files \ Java \ jdk1.6.0 \ bin" bazen var olan son yola noktalı virgül koymayı unutabilirsiniz.


0

Java'nın çalışacağı aynı sorunla karşılaştım, ancak javac Windows 8'de bir cmd isteminde bulunmayacaktı.

Sorun '>', yol adının sonunda kaldırmayı unuttuğum için ortaya çıktı , yani şöyle oldu:

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

şöyle olması gerekiyordu:

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

0

Yol yalnızca yönetici hesabı için ayarlanacaktır. Bu nedenle, henüz yapmadıysanız, yönetici olarak komut istemini başlatmanız önemlidir.


0

Yol değişkenindeki yollar arasında boşluklara (beyaz boşluk) izin vermediğinizden emin olun. Sorunum, içinde beyaz alan olmasıydı ve Windows'un bunu bir BOŞ olarak değerlendirdiğine ve Java için yolumu okumadığına inanıyorum.


0

Bu başlıkta yayınlanan aynı sorunu yaşıyordum. Java çalışır, ancak javacWindows komut isteminde ( cmd.exe) çalışmaz .

Benim için, ortam değişkenimin C:\Program Files\Java\jdk1.8.0\binsonuna eklerken bir boşluk yerleştirmiştim %PATH%. Ve sonraki dosya yolu
arasındaki boşluğu kaldırın ;.


0

Bunun eski bir soru olduğunu anlıyorum, ancak benim çözümüm burada bir cevap değildi, bu yüzden başka birinin geri kalanını denemesi durumunda onu göndermek.

Benim durumumda, Java JRE'nin önceki bir yüklemesinde (ProgramData / Oracle / Java'da) yol değişkenleri listemin en üstünde bir yol değişkeni vardı. Bu "Oracle" yolunun içeriğinde bir java.exe vardı, ancak javac.exe yoktu. Tam JDK yolumu, yol değişkenleri listesinin en üstüne, "Oracle" olanın önüne ekledim ve ardından javac.exe'yi ve java'yı aldım.


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

bu çözüm benim için çalıştı


Yalnızca bir bağlantı sağlamak yerine doğrudan yanıtınıza daha fazla açıklama eklemenizi öneririm: bağlantı kopabilir. Saygılarımızla
YakovL

-3

.Java'yı .class'a dönüştürmeye çalıştığımda Javac komutu çalışmadı. C: \ Program Files (x86) \ Java \ jdk1.7.0_04 \ bin dizinine giderek çalıştırdım ve bu dizindeyken Javac.exe C \ Test \ test.java yazdım ve bununla sınıfı oluşturdum taktik. Deneyin bunu.


-7

"C: \ Program Files \ Java \ jdk1.6.0_16 \ bin" olarak verin. Ters eğik çizgiyi kaldırın, işe yarayacak


2
Bunun doğru olduğunu sanmıyorum. Yolumu "C: \ Program Files \ Java \ jdk1.6.0_16 \ bin \" (sondaki eğik çizgi ile) dışında bir şey olarak ayarlayabilirim ve yine de iyi çalışıyor.
paxdiablo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.