2013-02-26 145 views
12

मैं अपने Ant build.xml को नहीं चला सकता क्योंकि मैंने जावा 1.7.0_52 (या इसके बारे में) में अपडेट किया था। मैं अपने विंडोज 7 लैपटॉप पर स्थानीय रूप से एक्लिप्स के माध्यम से वर्षों से इसे चला रहा हूं - लेकिन इस नवीनतम जेवी जेडीके अपडेट कुछ अलग (?) के साथ।चींटी "JAVA_HOME जेडीके को इंगित नहीं करता है" - लेकिन यह

BUILD FAILED 
C:\workspace\WaterAspectsModel3\build.xml:329: Unable to find a javac compiler; 
com.sun.tools.javac.Main is not on the classpath. 
Perhaps JAVA_HOME does not point to the JDK. 
It is currently set to "D:\Morten\Java\jdk1.7.0_52" 

यह मेरा जेडीके है! तो JAVA_HOME एक जेडीके को इंगित कर रहा है (जैसा कि त्रुटि संदेश से भी स्पष्ट है)। मेरे पास हमेशा मेरे रास्ते में बिन फ़ोल्डर के साथ मेरा जावा_एचओएमई है। मैंने एक्लिप्स - बाहरी उपकरण कॉन्फ़िगरेशन कॉन्फ़िगर किया है - एक जेआरई के साथ उसी डी: \ Morten \ Java \ jdk1.7.0_52 ("अलग जेआरई" सेटिंग के माध्यम से) को इंगित करता है। और मैंने कई अन्य कॉन्फ़िगरेशन की कोशिश की है - बिना किस्मत के सभी।

मैं सूचियों और अन्य स्थानों पर सूचियों के टन पढ़ रहा हूं और सोचता हूं कि मैंने सभी सुझावों का प्रयास किया है। ज्यादातर ऐसे मामले प्रतीत होते हैं जहां JAVA_HOME वास्तव में एक जरे को इंगित करता है और केवल jdk को सही करने की आवश्यकता होती है या ";" रास्ते में या उस तरह कुछ। इनमें से कोई भी मेरे मामले में लागू नहीं होता है।

कोई सुझाव?

+0

क्या आपके पास 'ANT_HOME' पर्यावरण चर सेट है? क्या यह 'पाथ' में भी है? वह सिस्टम पथ है। –

+0

अपने प्यारे cmd.exe से 'जावा-वर्जन' और 'javac -version' के लिए प्रिंटआउट के बारे में कैसे? और 'जावा' होमेम आपको क्या बताता है? – sjas

+0

'एंटी-वर्जन' भी आज़माएं। –

उत्तर

4

वास्तविक संदेश यह है कि चींटी com.sun.tools.javac.Main नहीं मिल सकती है।

जो इस तथ्य के साथ कि नवीनतम "सूर्य" (ओरेकल) जेडीके 1.7.0_13 (या शायद _14 है, लेकिन निश्चित रूप से "_52" नहीं है कि आपका इंस्टॉल डीआईआर इंगित करता है), मुझे लगता है कि आप हैं एंटी पहचानने वाले वितरण का उपयोग नहीं करते हैं। आप इसे jar tvf $JAVA_HOME/lib/tools.jar चलाकर और उस कक्षा की तलाश करके सत्यापित कर सकते हैं।

Ant Manual विभिन्न कंपाइलरों के साथ काम करने के तरीकों के बारे में बात करता है। चूंकि मैंने केवल "सूर्य" कंपाइलर्स का उपयोग किया है, मुझे डर है कि मैं आपको कोई संकेत नहीं दे सकता।


संपादित करें: आप अपनी बिल्ड फ़ाइल में fork="yes" सेट करने का भी प्रयास कर सकते हैं। यह संकलक वर्ग को आह्वान करने की कोशिश करने के बजाए संकलक निष्पादन योग्य चलाना चाहिए।

+4

यह बहुत अधिक संभावना है कि JAVA_HOME चर जेडीके के बजाय जेआरई पर इंगित कर रहा है। जावा के दो वितरण हैं, केवल "जावा डेवलपमेंट किट" में ** javac ** कमांड और डेवलपर –

+1

@ मार्को'कोनर द्वारा उपयोग की जाने वाली अन्य उपयोगी बाइनरी शामिल हैं, हालांकि ओपी का दावा है कि कई बार चेक किया गया है, इसलिए मैं अन्यथा बहस करने का कोई कारण नहीं देखें, 'tools.jar' की उपस्थिति (या अनुपस्थिति) किसी भी तरह से मजबूत सबूत होगी। चीज जो मुझे सोचती है कि यह कुछ और हो सकता है स्थापना निर्देशिका का संस्करण संख्या। – parsifal

+0

धन्यवाद पार्सिफल! मैं अभी तक नहीं हूं लेकिन "जार tvf tools.jar" ने स्पष्ट रूप से संकेत दिया कि यह एक पूरी तरह से अलग परियोजना से एक उपकरण था। बस मेरी जेडीके अनइंस्टॉल करना और पुनः इंस्टॉल करना। –

0

JAVA_HOME\bin को अपने env PATH पर जोड़ने का प्रयास करें।

+0

कोई भाग्य नहीं - एक ही संदेश (... हालांकि सटीक उसी पथ के साथ?) –

+6

नहीं, 'जावा' एचओएमईई आपका 'जेडीके' फ़ोल्डर होना चाहिए, बिन पथ आपके 'पथ' पर्यावरण चर में होना चाहिए। –

+0

@SotiriosDelimanolis मैंने अपना जवाब –

24

ग्रहण के माध्यम से एएनटी चलाने पर मेरा वही संदेश था।

क्या मेरे लिए काम किया:

  1. ग्रहण में, मेनू का उपयोग: "विंडो -> प्राथमिकताएं";
  2. पेड़ पर "चींटी -> रनटाइम" तक पहुंचें;
  3. क्लासपाथ टैब तक पहुंचें;
  4. "वैश्विक प्रविष्टियां" आइटम का विस्तार करें;
  5. वैश्विक प्रविष्टियों के अंदर, tools.jar का मार्ग गलत था। यह जावा के पुराने संस्करण को इंगित कर रहा था;
  6. मैंने गलत प्रविष्टि हटा दी और "बाहरी जार जोड़ें" बटन के साथ सही जोड़ा। इसने काम कर दिया।

enter image description here

+0

धन्यवाद - यह मेरे लिए काम करता है। tools.jar प्रविष्टि गायब थी। मुझे यह तय हो गया –

6

समाधान "Had to copy C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar to C:\Program Files\Java\jre6\lib\ext" here से महान मददगार था और मेरे लिए काम किया।

0

एक्वाइसे-प्राथमिकता-जावा-बिल्ड पथ-क्लासपाथ वेरिएबल्स में JAVA_HOME जोड़ें।