eclipse - javac1.8 कक्षा नहीं मिली




ant classnotfound (9)

क्रिस्टियन होल्डहस के उत्तर (सही के रूप में चिह्नित) के लिए फॉलो-ऑन के रूप में, आप इसके बजाय चींटी जावैक कार्य पर compiler विशेषता का उपयोग कर सकते हैं। compiler="modern" सेट करना पिछड़ा होना चाहिए (लगभग 1.3 तक) और आगे संगत।

यह build.compiler नामक जावा सिस्टम प्रॉपर्टी सेट करने की आवश्यकता से build.compiler । केवल build.compiler कार्य पर compiler विशेषता को स्पष्ट रूप से सेट करने की अनुपस्थिति में, चींटी build.compiler के मान को फ़ॉलबैक के रूप में उपयोग करेगी।

मैंने दो jdks - jdk 1.5 और jdk 1.8 स्थापित किया है। मैं Ant build.xml कॉन्फ़िगरेशन फ़ाइल का पालन कर रहा हूं:

<target name="compileCustomSrc">
    <javac srcdir="src" destdir="build/classes" source="1.5" target="1.5" >
        <classpath>
            <fileset dir="C:/lib/">
                <include name="*.jar" />
            </fileset>
        </classpath>
    </javac>
</target>

Jdk1.8 स्थापित करने से पहले, एक्लिप्स से लगाए गए चींट ने सभी स्रोतों को संकलित किया। लेकिन अब, मेरे पास निम्न त्रुटि संदेश है:

Class not found: javac1.8

मेरा जावा_एचओएमई और जेआरई_एचओएमई:

JAVA_HOME = C:\Program Files (x86)\Java\jdk1.5.0_16
JRE_HOME = C:\Program Files (x86)\Java\jre1.5.0_16

और एक्लिप्स जेआरई में 1.5 तक सेट करें। जावा 1.8 स्थापना के दौरान कुछ विन्यास सेट करता है?


मैंने इसे एक्लीज़ के साथ करने की कोशिश की और उसी त्रुटि को मिला क्लास नहीं मिला: javac1.8

मैंने अपने सिस्टम पर एएनटी संस्करण की पुष्टि की

> चींटी-विचलन

अपाचे एंटी (टीएम) संस्करण 1.9.6 जून 2 9 2015 को संकलित

जब मैंने कमांड प्रॉम्प्ट से build.xml को चलाने का प्रयास किया, तो यह काम किया। तब मैंने जांच की कि ग्रहण में, यह एएनटी के पुराने संस्करण का जिक्र कर रहा था।

मैंने बस ग्रहण में एंट होम पथ संपादित किया और यह यहां से भी काम करता है। :)

नीचे छवि है जहां ग्रहण में एएनटी पथ को संपादित करने की आवश्यकता है।

  1. Build.xml फ़ाइल पर राइट क्लिक करें
  2. ऐसे दोड़ो
  3. बाहरी उपकरण विन्यास
  4. क्लासपाथ टैब का चयन करें

अब यहां से एएनटी होम पथ बदलें।


एंटी संस्करणों के साथ असंगत में जावा 8 के रूप में 1.9.x रिलीज को एंटी अपडेट करें 1.9


JAVA_HOME = C:\Program Files (x86)\Java\jdk1.5.0_16
JRE_HOME = C:\Program Files (x86)\Java\jre1.5.0_16

आपका JAVA_HOME और JRE_HOME जावा 1.5 स्थापना पर सेट हैं इसलिए 1.8 बाइनरी (जैसे javac ) नहीं मिलते हैं। उन्हें जावा 1.8 स्थापना में सेट करें और आपको ठीक होना चाहिए।


Class not found: javac1.8

यह त्रुटि 1.9.0 से कम अपाचे एंटी संस्करणों के साथ होने वाली है - जो जावा 8 के साथ संगत नहीं हैं। यदि आप चींटी <1.9.0 के संस्करण का उपयोग कर रहे हैं, तो आपको 1.9.x रिलीज़ में अपडेट करना चाहिए।

संबंधित बग रिपोर्ट यहां दी गई है: https://issues.apache.org/bugzilla/show_bug.cgi?id=53347

बीटीडब्ल्यू, अगर आप जावा 8 के साथ संकलन करना चाहते हैं, लेकिन किसी भी वास्तविक जावा 8 सिंटैक्स को संकलित करने की आवश्यकता नहीं है, तो आप वर्कअराउंड के रूप में निम्नलिखित तर्क को जावैक में पास कर सकते हैं, जो आपको चींटी के पुराने संस्करण का उपयोग जारी रखने की अनुमति देगा :

-Dbuild.compiler=javac1.7

एंटी संस्करणों के साथ असंगत में जावा 8 के रूप में 1.9.x रिलीज को एंटी संस्करणों को कम करें 1.9 या कॉमांड put -Dbuild.compiler = javac1.7 के बाद, नीचे देखें:

चींटी रिलीज-Dbuild.compiler = javac1.7


आप अपने सिस्टम पर एएनटी 1.10 को डाउनलोड और अनजिप कर सकते हैं और अपने प्रोजेक्ट के लिए ग्रहण में एएनटी घर को 1.10 तक घुमाने की कोशिश कर सकते हैं। इसे काम करना चाहिए, अधिक जानकारी के लिए इसे पढ़ें। http://devops-badal.blogspot.com/2017/02/class-not-found-javac18-issue-while.html


मैंने अन्य सभी समाधानों की कोशिश की, लेकिन कोई भी काम नहीं किया। अंत में मुझे एक दृष्टिकोण मिला जो ग्रहण में मेरे लिए काम करता था:

  • चींटी कार्य नाम पर राइट क्लिक करें, उदाहरण के लिए ant विंडो में "compileCustomSrc"।
  • के Run As | External Tool Configurations चुनें Run As | External Tool Configurations
  • फिर JRE टैब पर, Separate JRE: Java SE7 7 या जो भी आपका जावा 7 नामित है, फिर Apply और फिर Run

आपका चींटी कार्य निष्पादित किया जाएगा, और सही ढंग से निर्माण करेगा!


नेस्टेड क्लास एक बहुत ही सामान्य शब्द है: प्रत्येक वर्ग जो शीर्ष स्तर पर नहीं है वह घोंसला वाला वर्ग है। एक आंतरिक वर्ग एक गैर स्थैतिक घोंसला वर्ग है। Joseph Darcy wrote a very nice explanation about Nested, Inner, Member, and Top-Level Classes .







java eclipse ant classnotfound