2011-08-09 17 views
51

मैं ग्रहण का उपयोग कर रहा हूं और कभी-कभी जावा का उपयोग नहीं किया है। हालांकि, मैं कमांड लाइन पर अपना कोड संकलित कर सकता हूं और आवश्यक .class फ़ाइलों को उत्पन्न कर सकता हूं। ग्रहण में, यह शिकायत करता है कि The declared package "Devices" does not match the expected package ""। इसका क्या अर्थ है और मैं इसे कैसे ठीक कर सकता हूं?घोषित पैकेज अपेक्षित पैकेज से मेल नहीं खाता है "

नमूना कोड:

package Devices; 

public final class DevFrequency 
{ 
    public short messageID; 
    public double frequency; 
    public short converterID; 
    public DevFrequency() 
    { 
    } 
    public DevFrequency(short _messageID,double _frequency,short _converterID) 
    { 
     messageID = _messageID; 
     frequency = _frequency; 
     converterID = _converterID; 
    } 
} 

अपने प्रोजेक्ट के नाम DeviceDDS है।

+1

क्या यह कक्षा '/ src/converters' निर्देशिका में है? – Jeremy

+5

यदि आप अपने प्रश्न को पीछे से बदलना चाहते हैं (जो व्यर्थ लगता है, ईमानदार होने के लिए) आपको इसके बारे में लगातार होना चाहिए - आपने प्रश्न के पहले पैराग्राफ को संपादित नहीं किया है। आपने सभी टिप्पणियां भी अजीब लग रही हैं। लगभग डेढ़ साल बाद सबकुछ क्यों बदलते हैं? –

उत्तर

36

ग्रहण घोषित पैकेज को निर्देशिका पदानुक्रम से मेल खाने की अपेक्षा करता है - इसलिए यह आपकी जावा फ़ाइल को आपकी स्रोत रूट के तहत "डिवाइस" नामक निर्देशिका में होने की उम्मीद कर रहा है। फिलहाल ऐसा लगता है कि फ़ाइल सीधे आपके स्रोत रूट में है। तो उपयुक्त निर्देशिका बनाएं, और फ़ाइल को वहां ले जाएं।

ध्यान दें कि परंपरागत रूप से, पैकेज कम मामले में हैं और आपके संगठन का नाम रिवर्स DNS ऑर्डर में शामिल करें, उदा।

com.foo.devices; 
+3

इस सुविधा को अक्षम कैसे करें? मेरा प्रोजेक्ट टर्मिनल में निर्दोष रूप से संकलित करता है .. – sakthig

+3

@ सक्ति: जहां तक ​​मुझे पता नहीं है, मैं आपको सलाह नहीं दूंगा, और मैं दृढ़ता से आपको सलाह दूंगा कि आप ऐसा भी न करें। * सभी * अनुभवी जावा डेवलपर्स आपको सामान्य सम्मेलनों का पालन करने की उम्मीद करेंगे। –

2

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

2

आपको कक्षा Devices फ़ोल्डर के अंदर कक्षा की आवश्यकता है।

34

समाधान 1: एक समाधान है कि मेरे लिए काम किया जब इस त्रुटि एक परियोजना मैं जाँच-आउट ग्रहण सीवीएस से हुई "घोषित पैकेज की उम्मीद पैकेज से मेल नहीं खाता":

1.Right नेविगेशन बार में प्रोजेक्ट पर क्लिक करें और 'हटाएं'
2. सुनिश्चित करें कि डिस्क पर प्रोजेक्ट सामग्री हटाएं 'विकल्प चेक नहीं किया गया है, और ठीक क्लिक करें।
3.Now के बाद परियोजना हटा दी जाती है, फ़ाइल के लिए जाने -> आयात -> जनरल -> मौजूदा कार्यस्थान
में परियोजनाओं 4.Select निर्देशिका से अपने कार्यक्षेत्र को सूचीबद्ध करने और अपने प्रोजेक्ट के नाम के आगे वाले बॉक्स। 'समाप्त'

समाधान 2 क्लिक करें: एक बार फिर मैं निम्न संदेश

ग्रहण त्रुटियों का निर्माण के साथ यह त्रुटि आई - java.lang.Object हल नहीं किया जा सकता है मैं एक मार्ग का पालन किया था यहां उल्लेख करें और त्रुटि चली गई।

इस बीच, परियोजना से जेआरई सिस्टम लाइब्रेरी को हटाने और फिर इसे फिर से जोड़ने के लिए काम करना है। ये कदम उठाएँ:

  1. गो (राइट क्लिक करें> गुण) का निर्माण त्रुटि के साथ परियोजना के गुणों "का निर्माण पथ" खंड में "पुस्तकालय" टैब देखें "JRE प्रणाली पुस्तकालय" का पता लगाएं सूची में करने के लिए (यदि यह गुम है तो यह त्रुटि संदेश ग्रहण बग नहीं है लेकिन एक गलत कॉन्फ़िगर किया गया प्रोजेक्ट)
  2. "जेआरई सिस्टम लाइब्रेरी"
  3. हटाएं "लाइब्रेरी जोड़ें ..."," जेआरई सिस्टम लाइब्रेरी "का चयन करें और प्रोजेक्ट के लिए उचित जेआरई जोड़ें (उदाहरण के लिए 'वर्कस्पेस डिफ़ॉल्ट जेआरई')
  4. लाइब्रेरी चयन में" समाप्त करें "और प्रोजेक्ट गुणों में" ठीक "दबाएं और फिर पुनः प्रतीक्षा करें परियोजना

उम्मीद है कि त्रुटि का समाधान हो जाएगा का बनाएँ ...

+3

परेशान, लेकिन यह मेरे लिए काम किया! चीयर्स! – crowmagnumb

+0

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

+8

सरल समाधान: मैं इस स्थिति में फिर से था, और परियोजना को बंद करके, ग्रहण को पुनरारंभ करने और परियोजना को फिर से खोलकर इसे काम करने में सक्षम था। –

1

सुनिश्चित करें कि Devices परियोजना गुणों में एक स्रोत फ़ोल्डर के रूप में परिभाषित किया गया है

9

मैं इस समस्या थी -। अन्य मेरे पैकेज के भीतर कक्षाएं ठीक थीं, लेकिन एक वर्ग के खिलाफ त्रुटि थी। पीए में कुछ भी गलत नहीं था सीकेज घोषणा।

मैंने इसे refactor->move करके तय किया और कक्षा को अस्थायी रूप से दूसरे पैकेज में स्थानांतरित कर दिया, फिर refactor->move मूल पैकेज पर वापस चला गया।

0

कि आप एक सही package.You बजाय फ़ोल्डर पैकेज

1

त्रुटि के एक ही तरह समझे लेकिन मेरे पैकेज बिल्कुल सही था बनाने के लिए एक मौका मिल सकता है बनाया है सुनिश्चित करें। जब मैंने अभी बंद कर दिया और अपना संपादक खोला, तो त्रुटि गायब हो गई। उम्मीद है कि यह कुछ परिदृश्यों में मदद कर सकता है।

22

फ़ाइल को बंद करने और फिर से खोलने का प्रयास करें।

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

+0

यह काम करता है। आसान फिक्स –

+0

कम से कम, यह मेरे लिए काम है! धन्यवाद –

0
  1. अपनी परियोजना की वर्कस्पेस रूट निर्देशिका में निर्देशिका [your.project.name] बनाएं।

  2. कॉपी करें * .java से "src" से उस निर्देशिका में।

  3. प्रोजेक्ट बंद करें और फिर से खोलें।

0

यह तब हुआ जब मैं ग्रहण में एक svn भंडार से एक परियोजना की जांच कर रहा था। मेरे .m2 फ़ोल्डर में जार फ़ाइलें थीं जो ग्रहण नहीं देख रही थीं। मुद्दा मैंने किया था ठीक करने के लिए:

राइट क्लिक प्रोजेक्ट फ़ोल्डर कॉन्फ़िगर> Maven परियोजना

और कहा कि समस्या हल हो जाती में बदलें।

0

एक लाख उत्तर हैं, लेकिन यहां एक और है: फ़ाइलों को एक नए पैकेज में कॉपी करें, पुराने पैकेज को हटाएं और पुराने पैकेज के नाम पर नए पैकेज का नाम बदलें।

3

मैं इन चरणों का पालन करके समस्या का समाधान:

  1. परियोजना का चयन करें - राइट क्लिक करें - जावा का निर्माण पथ।

  2. स्रोत टैब में - आप src से src/main/java बदलते हैं।

  3. ग्रहण सभी परियोजनाओं को फिर से व्यवस्थित करेगा।

0

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

0

जब मैंने अन्य पैकेज/परियोजनाओं से कक्षाओं की प्रतिलिपि बनाई तो मेरे पास इस तरह की स्थितियां थीं।

मेनू-> परियोजना-> साफ आमतौर पर मदद करता है।

0

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

0

मैंने अपने .classpath फ़ाइल में उस पैकेज के लिए "बहिष्कृत" विशेषता को हटाकर इसे ठीक किया। विशेषता को हटाएं, संपूर्ण टैग नहीं, या "src/java" स्रोत फ़ोल्डर के रूप में बंद हो जाएगा।

<classpathentry excluding="com/myproject/mypackage/mysubpackage/" kind="src" path="src/java"/> 
संबंधित मुद्दे