2011-01-11 20 views
5

में आयात करने में संकुल में समस्या मैं कुछ मौजूदा परियोजनाओं को ग्रहण में आयात करने की कोशिश कर रहा हूं। अपने पैकेजों के लिए संरचनाओं है:ग्रहण

Project/ 
     /src 
      /java 
      /a 
       /b 
       /c 

एक बार पैकेज एक्सप्लोरर मैं देख रहा हूँ में आयातित:

Project 
    src/java 
     --a 
     --b 
      --c 
       - AClass.java 

यह ठीक है, क्लास उदा के बाद से AClass.java पैकेज में परिभाषित कर रहे हैं: a.b.c लेकिन एक परियोजना में संरचना (एक बार आयातित) हो जाता है:

Project 
    src 
    --java 
     --a 
      --b 
      --c 
       - AClass.java 

और उस त्रुटि है कि AClass.java पैकेज a.b.c में होना परिभाषित किया गया है का कारण बनता है, लेकिन यह वास्तव किया जा रहा है java.a.b.c
ऐसा क्यों हो रहा है? पैकेज के हिस्से के रूप में इस विशिष्ट परियोजना जावा में क्यों नजरअंदाज नहीं किया जाता है?
धन्यवाद

+0

यह मेवेन प्रोजेक्ट है? –

+0

@ org.life।जावा: मुझे लगता है कि यह – Cratylus

उत्तर

7

आप ग्रहण परियोजनाओं को कैसे बना रहे हैं? ऐसा लगता है कि आपको "src" के बजाय, स्रोत पथ पर रूट के रूप में "जावा" को रूट करने की आवश्यकता है। आप निश्चित रूप से आयात प्रक्रिया के बाद बिल्ड पथ को संपादित करके ऐसा कर सकते हैं।

+0

@ जोनस्केट: मैं जावा को मार्ग के रूप में कैसे रखूं? मैं नहीं देख सकता कि बिल्ड पथ संवाद के माध्यम से ऐसा कैसे करें। यदि मैं जावा बिल्ड पथ में 'src/java' को संपादित करने के लिए संपादित करता हूं- स्रोत 'मुझे त्रुटि मिलती है "फ़ोल्डर src \ java" पहले से मौजूद है – Cratylus

+1

@ user384706: आपको पहले रूट के रूप में "src" को हटाने की आवश्यकता हो सकती है, लेकिन उसके बाद "स्रोत" टैब आपको बस "जोड़ें" पर क्लिक करने में सक्षम होना चाहिए और फिर सही जगह पर ब्राउज़ करना चाहिए। मेरे पास अभी मेरे सामने ग्रहण नहीं है, इसलिए मैं सटीक विवरण नहीं दे सकता - लेकिन बिल्ड पथ संवाद टिंकर करने का सही स्थान है। –

+0

@ जोन स्कीट आप सही हैं। @ user384706 आप स्रोत निर्देशिका बनाना चाहते हैं, src1, और लिंक स्रोत कहें। – Nishant

0

कॉल अपने आयात बयान के शीर्ष पर पैकेज,

यदि आपका वर्ग/Main.java

जावा/मुख्य/org/लक्ष्य में है की तरह तो पथ पैकेज है java.main.org .goal;

बाकी

Ctrl + 1 करते हैं और ऐसा लगता है कि

+1

डाउनवॉटिंग नहीं, लेकिन मुझे लगता है कि आप गलत हैं। जावा प्रोजेक्ट स्ट्रक्चर, विशेष रूप से मेवेन संचालित वाले, कक्षा पथ "/ जावा/मुख्य" से शुरू होता है। ऐप कोड 'मुख्य' के अंतर्गत जाता है और कक्षाएं वहां से शुरू होती हैं। तो, 'java.main.org.goal। *' गलत है, यह 'org.goal होना चाहिए। *' – Nishant

5

से कुछ त्वरित मदद

आयात आवश्यक पैकेज का सुझाव पहले मौजूदा स्रोत फ़ोल्डर निकालें। -Right क्लिक -> मेनू -> का निर्माण पथ -> निर्माण पथ

से हटा दें तो

सही स्रोत फ़ोल्डर पर क्लिक करें। पथ बनाएं -> स्रोत फ़ोल्डर के रूप में उपयोग करें।

ऐसा लगता है कि आपकी सेटिंग्स स्रोत फ़ोल्डर के अभिभावक को इंगित कर रही हैं, इसलिए स्रोत ग्रहण द्वारा पैकेज के रूप में पहचाना जाता है। इस वाक्य import java.io.*; जावा फ़ाइल के शीर्ष पर

Wrong package name when using automatically added imports in Eclipse

+0

@fatih: "ऐसा लगता है कि आपकी सेटिंग्स स्रोत फ़ोल्डर के अभिभावक को इंगित कर रही हैं इसलिए src"। इन सेटिंग्स को कैसे कॉन्फ़िगर/बदला गया है? – Cratylus

+0

प्रोजेक्ट गुण -> पथ बनाएं -> स्रोत टैब या – fmucar

+0

@fatih से ऊपर दिए गए संदेश में वर्णित जैसा: ये परियोजना के फाइल सिस्टम को प्रभावित नहीं करते हैं, है ना? – Cratylus

0

का प्रयोग करें। अन्यथा, आपको पैकेज फ़ोल्डर बनाना होगा।

आयात बयान:

जावा में अगर पूरी तरह से योग्य नाम है, जो पैकेज और वर्ग के नाम भी शामिल है, तो संकलक आसानी से स्रोत कोड या वर्गों का पता लगा सकते दिया जाता है। आयात विवरण उस विशेष वर्ग को खोजने के लिए संकलक के लिए उचित स्थान देने का एक तरीका है।

उदाहरण के लिए, निम्न पंक्ति निर्देशिका java_installation/जावा/कब में सभी वर्गों उपलब्ध लोड करने के लिए संकलक पूछना होगा:

import java.io.*;