ग्रहण संकलन त्रुटि: प्रकार 'श्रेणी नाम' का पदानुक्रम असंगत है


139

मैंने जावा में लिखे गए कुछ ओपन सोर्स सॉफ़्टवेयर डाउनलोड किए हैं और एक्लिप्स का उपयोग करके इसे संकलित करने की कोशिश की है। मुझे कुछ फाइलें मिलीं: " क्लास नाम 'का पदानुक्रम असंगत है "। इन त्रुटियों का क्या कारण है और मैं उन्हें कैसे ठीक करूं?

जवाबों:


161

इसका मतलब है कि आप एक गैर-मौजूदा इंटरफ़ेस लागू करने का प्रयास कर रहे हैं या आप एक गैर-मौजूदा वर्ग का विस्तार कर रहे हैं।

अपने ग्रहण को ताज़ा करने की कोशिश करें।

यदि यह काम नहीं करता है, तो इसका मतलब यह हो सकता है कि आपके पास एक JAR का संदर्भ है जो बिल्ड पथ में नहीं है। अपने प्रोजेक्ट के क्लासपाथ की जांच करें और सत्यापित करें कि इंटरफ़ेस या क्लास वाला जार इसमें है।


2
समान व्यर्थ के साथ, मेरे पास एक मावेन निर्भरता थी जो स्प्रिंग टूल सूट में इस त्रुटि का कारण बन रही थी, समाधान प्रश्न में निर्भरता पर एक Maven> करना था Download Source
MrLore


2
यह भी जांचें कि जनक संकलित हो रहा है या नहीं। मेरे मामले में मुझे पता था कि सुपरक्लास का अस्तित्व है, लेकिन यह वास्तव में ठीक से संकलित नहीं हो रहा था।
जोसेफ राजीव मोथा

2
मेरे पास एक अमूर्त वर्ग का विस्तार करने वाला एक वर्ग था जो एक लापता (ग्रहण से बदला हुआ) इंटरफ़ेस को लागू कर रहा था
कुंभ पावर

4
मेरे मामले में मैं एक वर्ग का विस्तार कर रहा था जो वर्ग पथ (एक जार) में WAS था, लेकिन इसने एक तृतीय श्रेणी का विस्तार किया जो एक अलग जार में था जो मेरे वर्गपथ में नहीं था।
जस्टिनकेएसयू

15

कभी-कभी ऐसा होता है जब आप एक जार जोड़ते हैं जिसकी आपको आवश्यकता होती है, लेकिन उन जार को शामिल न करें जिन्हें आईटी की आवश्यकता है। मेरे मामले में tomcat / lib में सभी जार जोड़ने से मुझे इस समस्या को हल करने में मदद मिली। मैं एक वेब-ऐप पर काम कर रहा हूं।


धन्यवाद, यह मेरा मुद्दा था। मैंने GWT लिबास को शामिल किया, लेकिन इस मामले में जेटी से जावा सर्वलेट एपीआई जार (सर्वलेट-एपी-3.1.जर) गायब था।
जेमी

13

अपनी त्रुटियों (टैब "मार्कर") की जाँच करें। मेरे पास निम्न त्रुटि भी थी:

परियोजना में आवश्यक पुस्तकालय के लिए पुरालेख नहीं पढ़ा जा सकता है ...

और जब तय किया गया कि "असंगत-त्रुटि" गायब हो गई।

वास्तव में मैंने निर्माण पथ में जार जोड़े थे, लेकिन किसी कारण से उन्हें त्रुटि के साथ नहीं पढ़ा जा सका

परियोजना में आवश्यक पुस्तकालय के लिए पुरालेख को पढ़ा नहीं जा सकता है या एक वैध ज़िप फ़ाइल नहीं है

इसलिए इसके बजाय मैंने उन्हें "बाहरी जार" के रूप में जोड़ा। इससे मदद मिली और सभी संकलन समस्याएँ नहीं रहीं!


5

JDK को एक नए संस्करण में अपग्रेड करने के बाद मुझे यह समस्या थी। मुझे प्रोजेक्ट प्रॉपर्टीज / जावा बिल्ड पाथ में पुस्तकालयों के संदर्भों को अपडेट करना था।


4

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

फिर प्रोजेक्ट पर जाएं -> क्लीन -> क्लीन सभी प्रोजेक्ट।


4

आपको प्रोजेक्ट को साफ करना चाहिए, या ग्रहण को फिर से शुरू करना चाहिए।


2

यह त्रुटि आपको तब दिखाई देगी जब आपकी लाइब्रेरी फ़ाइल में कुछ क्लास में आपके पास classpath में गैर-मौजूदा क्लैसे (s) का संदर्भ होता है जो किसी अन्य जार फ़ाइल में हो सकता है। यहां, मुझे यह त्रुटि तब मिली जब मैंने जोड़ा नहीं org.springframework.beans-3.1.2.RELEASE.jarथा और एक कक्षा को बढ़ा दिया था org.springframework.jdbc.core.support.JdbcDaoSupport, जो org.springframework.jdbc-3.1.2.RELEASE.jarमेरे वर्गपथ में थी।


2

समस्या यह हो सकती है कि आपने गलत जार शामिल किए हैं। मुझे भी यही समस्या थी और इसका कारण यह था कि मैंने प्रोजेक्ट के बिल्ड पाथ में गलत डिफ़ॉल्ट JRE लाइब्रेरी को शामिल किया था। मैंने एक अन्य संस्करण के साथ जावा को स्थापित किया था और एक अलग संस्करण के साथ जावा की जेआरई फाइलें शामिल थी। (मैंने अपने सिस्टम में JRE 1.6 स्थापित किया था और JRE लाइब्रेरी 1.7 में पहले से स्थापित जावा के कारण बिल्ड पथ में शामिल था) हो सकता है कि क्या आप जाँच कर सकते हैं कि JRE लाइब्रेरी जिसे आपने बिल्ड पथ में शामिल किया है, सही संस्करण का है। जावा संस्करण जो आपने अपने सिस्टम में संस्थापित किया है।


2

मुझे एक्लिप्स जूनो पर इस समस्या का अनुभव हुआ, मूल कारण यह था कि हालांकि कुछ स्प्रिंग जार को क्षणिक मावेन निर्भरता द्वारा शामिल किया जा रहा था, जो कि वे गलत संस्करणों में शामिल थे।

इसलिए आपको यह जांचना चाहिए कि क्या एक मौड्यूलर फ्रेमवर्क का उपयोग वसंत के रूप में किया जा रहा है कि हर मॉड्यूल (या कम से कम सबसे महत्वपूर्ण: कोर, सेम, संदर्भ, अनूप, टीएक्स, आदि) एक ही संस्करण में हैं।

समस्या को हल करने के लिए मैंने क्षणिक निर्भरता के गलत संस्करण से बचने के लिए मावेन पर निर्भरता के बहिष्करण का उपयोग किया।


2

त्रुटि: "वर्ग नाम" प्रकार की पदानुक्रम असंगत त्रुटि है।

समाधान: अन्य OtherDepJar {} -> "other.dep.jar" के अंदर है

कक्षा DepJar OtherDepJar {} -> का विस्तार "dep.jar" के अंदर करती है

क्लास प्रॉब्लमेटिकक्लास DepJar {} -> का विस्तार मौजूदा प्रोजेक्ट के अंदर है।

यदि dep.jar प्रोजेक्ट के क्लासपाथ में है, लेकिन other.dep.jar प्रोजेक्ट के क्लासपैथ में नहीं है, तो ग्रहण "प्रकार की पदानुक्रम ... असंगत त्रुटि" दिखाएगा।


1

मेरे लिए, यह मुद्दा गलत आयात के कारण था। वास्तव में, v7 समर्थन पुस्तकालय को जोड़ने के बाद आयात को अद्यतन करने की आवश्यकता है।

यह आपकी परियोजना के प्रत्येक वर्ग के लिए निम्नानुसार करके तय किया जा सकता है :

  1. import android.[*]प्रत्येक कक्षा में, सभी पंक्तियों को हटा दें
  2. अपने आयातों को पुनर्गठित करें: संदर्भ मेनू से स्रोत चुनें / व्यवस्थित करें या (CTRL + SHIFT + O)
  3. जब संकेत दिया जाता है, तो पुस्तकालयों का चयन करें android.support.[*](और नहीं android.[*])।

1

यह निश्चित रूप से था क्योंकि लापता निर्भरताएं जो मेरे मावेन pom.xml में नहीं थीं।

उदाहरण के लिए, मैं ब्रॉडलेफ़ ईकॉमर्स डेमो साइट के मेरे कार्यान्वयन के लिए एकीकरण परीक्षण बनाना चाहता था।

मैंने अपने कॉन्फ़िगरेशन फ़ाइलों और आधार परीक्षण कक्षाओं का पुन: उपयोग करने के लिए ब्रॉडलेफ़ कॉमर्स से एकीकरण परीक्षणों के साथ एक ब्रॉडलाइफ़ जार को शामिल किया था। उस परियोजना में अन्य परीक्षण निर्भरताएं थीं जिन्हें मैंने शामिल नहीं किया था और मुझे "असंगत पदानुक्रम" त्रुटि प्राप्त हुई।

Broadleaf / pom.xml से "परीक्षण निर्भरता" और संबंधित गुण चर की प्रतिलिपि बनाने के बाद, जो Broadleaf / pom.xml में प्रत्येक निर्भरता के लिए संस्करण प्रदान करते हैं, त्रुटि चली गई।

गुण थे:

    <geb.version>0.9.3</geb.version>
    <spock.version>0.7-groovy-2.0</spock.version>
    <selenium.version>2.42.2</selenium.version>
    <groovy.version>2.1.8</groovy.version>

निर्भरताएं थीं:

<dependency>
            <groupId>org.broadleafcommerce</groupId>
            <artifactId>integration</artifactId>
            <type>jar</type>
            <classifier>tests</classifier>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.broadleafcommerce</groupId>
            <artifactId>broadleaf-framework</artifactId>
            <version>${blc.version}</version><!--$NO-MVN-MAN-VER$ -->
            <classifier>tests</classifier>
        </dependency>
        <dependency>
            <groupId>com.icegreen</groupId>
            <artifactId>greenmail</artifactId>
            <version>1.3</version>
            <type>jar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>2.5.1</version>
            <type>jar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymockclassextension</artifactId>
            <version>2.4</version>
            <type>jar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>5.9</version>
            <type>jar</type>
            <classifier>jdk15</classifier>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>${groovy.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.gebish</groupId>
            <artifactId>geb-core</artifactId>
            <version>${geb.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.gebish</groupId>
            <artifactId>geb-spock</artifactId>
            <version>${geb.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.spockframework</groupId>
            <artifactId>spock-core</artifactId>
            <version>${spock.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-support</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-firefox-driver</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
        </dependency>
  <!-- Logging -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.12</version>
                <type>jar</type>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.6.1</version>
                <type>jar</type>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>1.6.1</version>
                <type>jar</type>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.6.1</version>
                <type>jar</type>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.hsqldb</groupId>
                <artifactId>hsqldb</artifactId>
                <version>2.3.1</version>
                <type>jar</type>
                <scope>test</scope>
            </dependency>

1

यदि विस्तारित वर्ग में समस्या है, तो उपरोक्त त्रुटि संदेश प्रदर्शित होगा।

उदाहरण

class Example extends Example1 {

}

में मुद्दों को ठीक करें Example1


1

मेरे पास एक ही सटीक समस्या मार्कर था और एक विधि से @Override एनोटेशन को हटाकर इसे हल किया जो वास्तव में पहला कार्यान्वयन था ("सुपर" एक एक अमूर्त विधि) और ओवरराइड नहीं।


1

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



0

मुझे भी यह समस्या हो रही थी ... मुझे पता चला कि कक्षा का वह पदानुक्रम जो इस अपवाद को फेंक रहा था, उसे ग्रहण द्वारा अपने मूल वर्ग में वापस नहीं लाया जा सकता ... I

मेरे मामले में, मेरे पास 3 जावा परियोजना है: ए, बी और सी ... जहां ए और बी मावेन परियोजनाएं हैं और सी एक नियमित जावा ग्रहण परियोजना है ...

प्रोजेक्ट ए में, मेरे पास इंटरफ़ेस "इंटरफ़ेसए" है ... प्रोजेक्ट बी में, मेरे पास "इंटरफ़ेसएबी" है जो "इंटरफ़ेसए" का विस्तार करता है। परियोजना सी में, मेरे पास कंक्रीट क्लास "क्लाससी" है जो "इंटरफ़ेसबी" को लागू करता है।

"प्रोजेक्ट C" अपने बिल्ड पथ में "प्रोजेक्ट B" शामिल था, लेकिन "प्रोजेक्ट A" नहीं था (इसलिए यह त्रुटि का कारण था) .... "C" के बिल्ड पथ के अंदर "प्रोजेक्ट A" शामिल करने के बाद सब कुछ सामान्य हो गया ...


0

मेरे पास एक वर्ग था जो OSPi के साथ एक परियोजना में लेबलप्रॉइडर का विस्तार करता है, वहां त्रुटि हुई। इसका हल यह था: org.eclipse.jface को आवश्यक प्लगिनों में जोड़ना। घोषणापत्र में आवश्यक संकुल जैसे org.eclipse.jface.viewers आयात करने के बजाय।


0

यदि आप केवल ग्रहण परियोजना का आयात कर रहे हैं तो 1. परियोजना संपत्तियों के तहत जावा निर्माण पथ सेटिंग पर जाएं। 2. यदि JRE सिस्टम लाइब्रेरी में एरर साइन अटैच है, तो उसे डबल क्लिक करके एडिट लाइब्रेरी विंडो खोलें। सिस्टम के सही जावा वर्जन के लिए एक्जीक्यूशन एन्वायरमेंट को बदलें या रेडियो बटन असाइन करके अन्य सेटिंग्स एडिट करें चुनें उनको। 4. फिनिश पर क्लिक करें


0

जब "Google प्लग इन एक्लिप्स" स्थापित किए बिना ग्रहण में GWT परियोजना का आयात किया जाता है, तो यह घटित होगा। "ग्रहण के लिए Google प्लगइन" स्थापित करने के बाद, यह त्रुटि गायब हो जाएगी।


0

प्रोजेक्ट फ़ोल्डर पर राइट क्लिक करें और "जावा बिल्ड पाथ" चुनें। "जावा बिल्ड पाथ" के तहत आपको पुस्तकालयों को देखने में सक्षम होना चाहिए। ग्रहण उन पुस्तकालयों में से किसी में त्रुटि दिखाएगा। उन मुद्दों को हल करने से समस्या को हल करने में मदद मिलेगी।


0

मुझे एक शाखा से कुछ git मर्ज करने के बाद यह त्रुटि हुई जहां मेरी कक्षाओं ने एक नया इंटरफ़ेस बढ़ाया। यह पैकेज एक्सप्लोरर में फ़ाइल-ट्री को रीफ्रेश (F5) करने के लिए पर्याप्त था ग्रहण फ्रेम ।

ऐसा लगता है कि ग्रहण ने सब कुछ ठीक से अपडेट नहीं किया और इसलिए कक्षाएं एक गैर-मौजूदा-अभी तक इंटरफ़ेस का विस्तार कर रही थीं। ताज़ा करने के बाद, सभी त्रुटियां गायब हो गईं।


0

मुझे आईबीएम से प्राप्त होने वाले ग्रहण ऑक्सीजन से स्विच करना पड़ा और आईबीएम जेडडीके 8 से ग्रहण फोटॉन और ओरेकल जेडडीके 8 का उपयोग किया। मैं जावा अनुकूलन पर काम कर रहा हूं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.