javac विंडोज़ कमांड प्रॉम्प्ट में काम नहीं कर रहा है


132

मैं javacविंडोज़ कमांड प्रॉम्प्ट के साथ उपयोग करने की कोशिश कर रहा हूं , लेकिन यह काम नहीं कर रहा है।

परिवेश चर "C:\Program Files\Java\jdk1.6.0_16\bin\"के अंत में निर्देशिका जोड़ने के बाद PATH, javaकमांड ठीक काम करता है, लेकिन उपयोग करने javacसे मुझे निम्न त्रुटि मिलती है:

'javac' को आंतरिक या बाहरी कमांड, ऑपरेबल प्रोग्राम या बैच फ़ाइल के रूप में मान्यता नहीं दी जाती है।


जवाबों:


162

यदि आपने नियंत्रण कक्ष में इसे जोड़ा है जबकि आपका कमांड प्रॉम्प्ट खुला था, तो यह आपके वर्तमान कमांड प्रॉम्प्ट को प्रभावित नहीं करेगा। आपको बाहर निकलने और फिर से खोलने या बस करने की आवश्यकता होगी:

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

जाँच के माध्यम से, निष्पादित करें:

echo %path%

अपने कमांड प्रॉम्प्ट से और हमें बताएं कि यह क्या है।

अन्यथा, सुनिश्चित करें कि है कोशिश कर रहा द्वारा कि निर्देशिका में javac:

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

कमांड प्रॉम्प्ट से। आप यह भी बता सकते हैं कि कौन सा निष्पादन योग्य (यदि कोई है) कमांड के साथ प्रयोग किया जा रहा है:

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

यह कुछ यूनिक्स-प्रकार के ऑपरेटिंग सिस्टम में which/ और whenceकमांड के समान एक साफ चाल है ।


11
आह हाँ, मुझे बस इतना करना था कि कमांड प्रॉम्प्ट को फिर से खोलें और यह ठीक काम करे, धन्यवाद!
Domenic

1
+1। "% I in (java.exe) do @echo% ~ $ PATH: i" ने मेरा दिन बचा लिया। मैं सिर्फ एक सामयिक विंडोज उपयोगकर्ता हूं और मुझे नहीं पता था कि c: \ windows \ system :) में अभी तक एक और छिपा हुआ java.exe हो सकता है
david a।

1
उपरोक्त सेट पथ कमांड मेरे लिए विंडो 7 के तहत काम नहीं करता है। मुझे सेट पथ = "% पथ%" का उपयोग करना पड़ा; c: \ program files \ java \ jdk1.6.0_16 \ bin। यह उद्धरण के बिना है! मैं परिचित नहीं हूँ! विंडोज़ कमांड लाइन के साथ, लेकिन ऐसा लगता है कि उद्धरण संरक्षित हैं। इसलिए उन्हें% पथ% में रखने से यह पूरी तरह अनुपयोगी हो जाएगा।
user716468

@ user716468, कमांड लाइन के बजाय विंडोज़ में ऐसा करने का एक GUI तरीका है। यदि आप विंडोज़ 7 पर हैं, तो स्टार्ट मेन्यू में केवल var टाइप करें और Edit Environment Variables पर क्लिक करें। यदि आप Windows XP पर हैं, तो मेरा कंप्यूटर पर राइट क्लिक करें, गुणों पर क्लिक करें, उन्नत टैब पर जाएं और नीचे की ओर पर्यावरण चर बटन पर क्लिक करें। वहां आपको दो सूची बॉक्स मिल सकते हैं। नीचे सूची बॉक्स से PATH नाम के साथ एक का पता लगाएं और संपादित करें पर क्लिक करें। अब एक अर्धविराम से पहले अपने JDK के लिए मार्ग को बढ़ाएँ। हो गया!
fz_salam

हाल ही में विंडोज़ कमांड लाइनों में एक "जहां" कमांड भी है
x29a

87

विंडोज ओएस निष्पादन योग्य कार्यक्रमों के लिए वर्तमान निर्देशिका और पथ पर्यावरण चर में सूचीबद्ध निर्देशिकाएं खोजता है। JDK के प्रोग्राम (जैसे जावा कंपाइलर javac.exe और Java रनटाइम java.exe) डायरेक्टरी "\ bin" (जहाँ JDK स्थापित डायरेक्टरी को दर्शाता है, उदाहरण के लिए, C: \ Program Files \ Java \ jdk1.0_xx)। आपको PATH में "\ bin" निर्देशिका को शामिल करना होगा।

Windows XP / Vista / 7/8 में पथ पर्यावरण चर को संपादित करने के लिए:

  1. कंट्रोल पैनल ⇒ सिस्टम ⇒ उन्नत सिस्टम सेटिंग्स

  2. "उन्नत" टैब ⇒ पर्यावरण चर पर स्विच करें

  3. "सिस्टम चर" में, "पथ" ⇒ संपादित करने के लिए नीचे स्क्रॉल करें

((अब आगे बढ़ने से पहले निम्नलिखित 3 बार पढ़ें, वहां कोई यूएनडीओ नहीं है) )

"चर मान" फ़ील्ड में, INSERT "c: \ Program Files \ Java \ jdk1.8.0_xx \ bin" (अपग्रेड संख्या के साथ xx बदलें और यह बताएं कि यह आपकी JDK की द्विआधारी निर्देशिका है) सभी मौजूदा के सामने! निर्देशिकाएं, इसके बाद एक अर्ध-उपनिवेश (;) जो कि मौजूदा निर्देशिकाओं के बाकी हिस्सों से जेडीके की बाइनरी निर्देशिका को अलग करता है। किसी भी मौजूदा प्रविष्टि को नष्ट न करें; अन्यथा, कुछ मौजूदा एप्लिकेशन नहीं चल सकते हैं।

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

स्क्रीनशॉट


चरण 4 के लिए। मैंने पाया कि मुझे jre <yournumber> नहीं, बल्कि jdk <yournumber> का चयन करना था। फिर बाकी सब कुछ ठीक रहा।
मॉर्गन केयोन

साफ और साफ! सबसे बढ़िया उत्तर। मेरे लिए काम किया।
M_R_K

मेरे मामले में, चरण 4 के लिए, मैंने jdk खोला। संक्षेप में, मेरे पास PATH: C: \ Program Files \ Java \ jdk1.7.0_67 \ bin के लिए यह था। javac.exe jre में नहीं, बल्कि jdk में थी।
sedeh

मेरे लिए काम करता है :)
RAJESH KUMAR ARUMUGAM

34

एक लंबे Google के बाद, मुझे पता चला कि javac.exe JDK (C: \ Program Files \ Java \ jdk (संस्करण संख्या) \ bin) के अंदर होगा न कि JRE (C: \ Program Files (x86) \ Java \ _re7 के अंदर \ बिन) "जेआरई एक संकलक के साथ नहीं आता है। यह (जेआरई) एक जावा रनटाइम वातावरण है। आपको जावा विकास किट की आवश्यकता है।" संकलक javac का उपयोग करने के लिए

अगर आप बिन को jre के अंदर इंगित कर रहे हैं तो javac काम नहीं करेगा

Cmd में javac का उपयोग करने के लिए, JDK को आपके सिस्टम में संस्थापित होना चाहिए ...

जावैक पथ के लिए

पथ = C: \ Program Files (x86) \ Java \ jre7 \ bin यह गलत है

पथ = C: \ Program Files \ Java \ jdk (संस्करण संख्या) \ bin यह सही है

सुनिश्चित करें कि "javac.exe" आपके "C: \ Program Files \ Java \ jdk (संस्करण संख्या)" बिन "के अंदर है

JRE और JDK से भ्रमित न हों, दोनों बिल्कुल अलग हैं

यदि आपके पास इस लिंक से JDK pls डाउनलोड नहीं है

https://jdk.java.net/

या

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

JDK VS JRE के लिए संदर्भ धागा JDK और JRE में क्या अंतर है?


6

मुझे पता है कि यह आपकी विशिष्ट त्रुटि नहीं हो सकती है, लेकिन मेरे पास एक बार मेरे पथ में अग्रणी स्थान था और जावा काम करेगा लेकिन जेवैक नहीं होगा।

इसके लायक क्या है, मैं ऋषि सलाह प्रदान करता हूं: "अपने पथ की बारीकी से जांच करें"।


5

यहां समाधानों की कोशिश करें: http://techdem.centerkey.com/2009/05/javahome-command-script.html

ये बदलने के लिए बहुत अधिक मजबूत हैं - जैसे जब आप JDK या JRE को अपग्रेड करते हैं, क्योंकि कोई हार्ड कोडित पथ नहीं है।

त्वरित समाधान (यदि आप ब्लॉग नहीं पढ़ना चाहते हैं) है

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

फिर आप इन पंक्तियों को एक स्टार्टअप / लॉगिन स्क्रिप्ट में जोड़ सकते हैं।


2
इस तरह के javac को लागू करने के लिए मुझे "PATH =% PATH%;% JAVA_HOME% \ bin" का उपयोग करना था (नोट किए गए \ bin पर ध्यान दें)।
user31389

4

मुझे यह करने के लिए यह करना था विंडोज 7 64 पर काम करने के लिए।

कमांड प्रॉम्प्ट (cmd.exe) खोलें और टाइप करें:

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

सुनिश्चित करें कि आपने पर्यावरण चर को अपडेट करने के लिए सभी रनिंग कमांड प्रॉम्प्ट विंडोज को फिर से खोल दिया है।


1
मुझे लगता है कि क्लासपाथ को परेशान करना यहां बेहतर है। मैं CLASSPATH वैरिएबल का उपयोग नहीं करूंगा, विशेष रूप से विंडोज पर नहीं जहां यह वैश्विक है और कई
JRE को

4

ठीक है यह हमेशा नहीं हो सकता है, लेकिन हम में से कई लोगों ने अतीत में यह गलती की है और उनमें से कुछ अभी भी इसके बारे में नहीं जानते हैं, जो कि, हर बार जब आप किसी भी पर्यावरण चर के पथ (पथ) को जोड़ते हैं, तो आप "अर्धविराम" (जैसा कि आप आमतौर पर एक संपादक में टाइप करते समय "अवधि" के बाद करते हैं) के ठीक बाद स्पेस बार से टकराने की संभावना है।

यह पथ में एक प्रमुख स्थान बनाएगा जैसे "C: \ Program Files \ Java \ jdk1.6.0 \ bin" और इसलिए "javac.exe" सिस्टम द्वारा नहीं मिलेगा।


2

"Jdk1.7.0_45" "jdk1_7_0_60" फ़ोल्डर बदलें और विंडोज वातावरण में पथ को अपडेट करें। अन्यथा, पथ सामने की ओर डॉट को अनदेखा करता है जो छिपी हुई फ़ाइल के लिए खड़ा है और इसलिए फ़ोल्डर को पथ स्ट्रिंग्स में प्रदर्शित नहीं किया गया है।



0

मुझे ठीक उसी समस्या का सामना करना पड़ा जो जावा काम करेगा लेकिन विंडोज 8 में जेवाड सीएमडी प्रॉम्प्ट पर नहीं होगा।

समस्या उत्पन्न हुई क्योंकि मैं '>'पथ नाम के अंत में हटाना भूल गया , अर्थात, यह इस तरह था:

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

जहां ऐसा माना जाता था:

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

0

पथ केवल व्यवस्थापक खाते के लिए सेट किया जाएगा। इसलिए यदि आप पहले से ही नहीं हैं, तो कमांड प्रॉम्प्ट को व्यवस्थापक के रूप में लॉन्च करना महत्वपूर्ण है।


0

सुनिश्चित करें कि आप पथ चर में पथों के बीच रिक्त स्थान (सफ़ेद स्थान) की अनुमति नहीं देते हैं। मेरी समस्या यह थी कि मेरे पास सफेद स्थान था और मेरा मानना ​​है कि विंडोज ने इसे एक नल के रूप में माना और जावा के लिए अपना पथ नहीं पढ़ा।


0

मुझे इस शीर्षक में वही समस्या आ रही थी। जावा काम करेगा, लेकिन javacविंडोज कमांड प्रॉम्प्ट ( cmd.exe) में नहीं होगा ।

मेरे लिए, यह केवल इतना था कि मैंने C:\Program Files\Java\jdk1.8.0\binअपने %PATH%पर्यावरण चर के अंत में जोड़ते समय एक स्थान रखा था । और अगली फ़ाइल पथ के
बीच का स्थान निकालें ;


0

मैं सराहना करता हूं कि यह अब एक पुराना सवाल है, लेकिन मेरे समाधान का जवाब यहां नहीं था इसलिए इसे पोस्ट करने की स्थिति में बाकी कोई भी कोशिश करता है।

मेरे मामले में, जावा जेआरई की एक पिछली इंस्टॉल (प्रोग्रामडाटा / ओरेकल / जावा में) पथ चर की मेरी सूची में सबसे ऊपर एक पथ चर थी। उस "ओरेकल" पथ की सामग्री में एक java.exe था, लेकिन एक javac.exe नहीं। मैंने अपना पूरा JDK पथ "वैरिएबल" एक के आगे, पथ चर की सूची में शीर्ष पर जोड़ दिया, और इसने javac.exe के साथ-साथ जावा को भी उठाया।


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

इस समाधान ने मेरे लिए काम किया


मैं सिर्फ एक लिंक प्रदान करने के बजाय सीधे आपके उत्तर में अधिक एनोटेशन जोड़ने का सुझाव दूंगा: लिंक टूट सकता है। सबसे अच्छा संबंध है
याकॉव

-3

जब मैंने .java को बनाने की कोशिश की। मैंने इसे C: \ Program Files (x86) \ Java \ jdk1.7.0.0_04 \ bin में जाकर काम कर लिया और जब मैं उस निर्देशिका पर था, तो मैंने Javac.exe C \ Test \ test.java टाइप किया और इसने उस वर्ग को बनाया रणनीति। कोशिश है कि बाहर।


-7

इसे "C: \ Program Files \ Java \ jdk1.6.0_16 \ bin" के रूप में दें। बैकस्लैश निकालें यह काम करेगा


2
मुझे नहीं लगता कि यह सही है। मैं अपना रास्ता कुछ भी नहीं होने के लिए सेट कर सकता हूं, लेकिन "C: \ Program Files \ Java \ jdk1.6.0_16 \ bin \" (अनुगामी स्लैश के साथ) और यह अभी भी ठीक काम करता है।
पाक्सिडाब्लो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.