Intellij में Java प्रोजेक्ट में "Symbol नहीं मिल रहा है"


94

मैं इस कॉल को क्लास से स्टैटिक सिंगलटन इंस्टेंस के लिए करता हूं GameManager.java

HUD.getInstance().update(timeDelta);

HUD.javaइसमें HUDकक्षा के साथ-साथ दो अन्य संबंधित वर्ग शामिल हैं, HUDTextElementऔर HUDElement। सभी वर्ग एक ही मूल पथ में हैं ../src/org/mypackage

हालाँकि, जब मैं IntelliJ में इस जावा परियोजना को संकलित करता हूं तो मुझे उस लाइन पर प्रतीक HUD नहीं मिल सकता है जो मैं बनाता हूंHUD.getInstance() कॉल कॉल ।

यह ठीक उसी कोड को ग्रहण में ठीक संकलित करता है, किसी भी विचार में समस्या क्या है?


1
क्या आपके पास HUD वर्ग दोनों में आयातित है?
एलेक्स कोलमैन 16

यह इस समस्या का एकमात्र समाधान है जिसने मेरे लिए काम किया stackoverflow.com/a/56473166/8660553
साहिल सिंघल

जवाबों:


163

बिल्ड-> चुनें प्रोजेक्ट इसे हल करेगा



4
@JustinHill - मैं अच्छी तरह से ग्रहण और इंटेलीज के लिए नया हूं। क्या आप मुझे इस बात में मदद कर सकते हैं कि दोनों के बीच क्या अंतर है और कोई भी बिंदु / लिंक जो मुझे IntellJ के साथ अपना समय बसाने में मदद करता है।
नैनोसेफ्ट

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

1
यह काम क्यों किया? कैश को अमान्य करना और पुनरारंभ करना भी काम नहीं करता था।
b15

काम किया .... "मावेन क्लीन कंपाइल" चलाने की कोशिश की, लेकिन वह समस्या हल नहीं कर रहा था
Omtara

54

मेरे पास एक ही समस्या थी, और पता चला कि मैंने कभी भी ताजा परियोजना को पूरी तरह से संकलित नहीं किया था। इसलिए कंपाइल 'राइट-क्लिक और सेलेक्ट करना' (Shift-cmd-F9 on mac) ने इसे ठीक कर दिया। ऐसा लगता है कि सेव पर संकलित गैर-संकलित फ़ाइलों को 'नहीं' देखता है।

स्रोत के रूप में src फ़ोल्डर को चिह्नित करने से मेरे मामले में मदद नहीं मिली।


44

मुझे भी यही समस्या थी और फ़ाइल> अमान्य कैश / पुनरारंभ पर क्लिक करके इसे ठीक किया


1
बाहर देखें - यदि आप कोई बदलाव करते हैं और वे प्रतिबद्ध नहीं हैं, तो वे खो जाएंगे। :)
निकोला

4
कैश को अमान्य करने के परिणामस्वरूप खोए हुए परिवर्तन नहीं होते हैं। मुझे यकीन नहीं है कि यह कैसे काम करेगा। यदि आप किसी फ़ाइल को सहेजते हैं, तो यह IntelliJ कैशिंग या रिपॉजिटरी के लिए प्रतिबद्ध होने के बावजूद बच जाता है।
क्रिस्टोफर श्नाइडर

28

यह आपके होने की संभावना है .. Intsij IDEA में "ss" फ़ोल्डर को "स्रोत" फ़ोल्डर के रूप में चिह्नित नहीं किया गया है, इसलिए यह आपकी कक्षा खोजने के लिए वहां देखने के लिए नहीं जानता है। आप प्रोजेक्ट एक्सप्लोरर में फ़ोल्डर को राइट क्लिक कर सकते हैं और इसे ठीक करने के लिए "स्रोत फ़ोल्डर के रूप में निशान" चुन सकते हैं।


1 एक भाईचारा है, लेकिन 2 उसे यह कहते हुए एक त्रुटि नहीं देगा कि यह HUD नहीं पा सकता है, बल्कि एक त्रुटि कह रही है कि यह getInstance / update विधि नहीं है?
एलेक्स कोलेमन

लगता है कि यह विकल्प चला गया है।
clankill3r

नहीं, यह पॉपअप विकल्पों में बदल जाता है: "मार्क डायरेक्टरी अस>"
ड्रैकॉन्टिस

मेरे src के अंदर परीक्षण फ़ोल्डर है, और मल्टी मॉड्यूल, इसे सोर्स रूट के रूप में चिह्नित करने के बाद मेरा मुद्दा सबसे खराब है।
सी सोंग

मेरे लिए यह सही उत्तर के करीब था। मेरे स्रोत रूट को पहले से ही चिह्नित किया गया था, लेकिन मुझे "स्रोत रूट के रूप में अनमार्क" करना था और फिर त्रुटि को ठीक करने के लिए इसे फिर से सूत्र रूट के रूप में चिह्नित करना था।
यानि

26

जब मैं किया था तो मुझे "प्रतीक नहीं मिल रहा है" त्रुटि हो रही थी Build -> Make Project। मैंने अपने Maven /targetफ़ोल्डर को हटाकर , अपने प्रोजेक्ट मॉड्यूल पर राइट क्लिक करके और कर Maven -> Reimport, और कर के इसे ठीक किया Build -> Rebuild Project। यह इंटेलीज आइडिया 13.1.5 पर था।

यह पता चला है Maven -> Reimportकि मैं कुछ करने से पहले समस्या को कुछ समय बाद फिर से जगाता था।


12

अब तक की मदद के लिए धन्यवाद, पता चला कि फिक्स HUD.java को पहले संकलित करना था (फ़ाइल पर सही क्लिक करें-> संकलन HUD.java)। जावा फ़ाइल को संकलित करने के बाद परियोजना के बाकी हिस्सों को बिना किसी समस्या के संकलित किया जा सकता है।

मैं वास्तव में नहीं जानता कि यह क्यों तय किया गया है, या क्यों IntelliJ स्वचालित रूप से ऐसा नहीं करेगा, लेकिन रूट त्रुटि यह IntelliJ के साथ क्या करना है सही ढंग से एक एकल .java फ़ाइल में कई वर्गों को नहीं संभाल रहा है।


1
IntelliJ एक ही फ़ाइल में कई कक्षाओं को ठीक प्रकार से संभाल सकता है, बस यह सुनिश्चित करने की आवश्यकता है कि फ़ाइल किसी बिंदु पर संकलित की गई थी।
माकोटो

हाँ, सिवाय इसके कि मैं एक ही वर्ग फ़ाइल के साथ एक ही मुद्दा था। ताज्जुब है, इससे पहले कि मैं इस मावेन कमांड को चलाता, ठीक ठीक चल रहा था mvn com.zenjava:javafx-maven-plugin:2.0:fix-classpath:। यह javafx जार को libs निर्देशिका से मौजूदा JDK के लिए मौजूदा निर्देशिका में ले जाने के लिए है। मैंने इसे यहां पाया ।
निहिलों

7

मुझे प्रोजेक्ट को राइट-क्लिक करना था, और "रन मावेन" सबमेनू के तहत "रिइम्पोर्ट" चुनें।


5

मैं अपने प्रोजेक्ट में मावेन का उपयोग करता हूं। किसी कारण से IntelliJ मुझे इस तरह की अजीब त्रुटियों को दे रहा था। मैंने mvn को साफ किया और एक रेसकंक की कोशिश की और ये त्रुटियां गायब हो गईं।


1
स्वच्छ एक मावेन जीवन चक्र है। यदि आप मावेन प्रोजेक्ट द्वारा बनाई गई सभी आउटपुट फ़ाइलों को साफ करना चाहते हैं, तो आप इसका उपयोग करते हैं।
मोइज़ राजा

5

मेरे लिए - मैंने इन चरणों (अमान्य कैश एंड रिस्टार्ट, मेवेन रिम्पोर्ट) की कोशिश की, लेकिन उन्होंने काम नहीं किया। तो मैं नष्ट कर दिया .idea, .settingsऔर .projectफ़ोल्डर और करने की कोशिश की है - यह काम किया।


3
.ideaफ़ोल्डर को हटाना मेरे लिए था।
डैनियल डी।

4

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

Right-click project folder -> Rebuild मेरे लिए काम किया।


3

मैंने एक ही समस्या का सामना किया, और जवाब में बहुत सारे समाधान दिए गए हैं, इन सभी समाधानों की कोशिश करने में मुझे कुछ समय लगा है, इसलिए यहां मैं एक पद्धतिगत दृष्टिकोण का प्रस्ताव करना चाहूंगा यदि आपको यह त्रुटि मिलती है।

अगर कुछ याद आ रहा है, तो निम्नलिखित चीजों की जांच करें, बनाएं / अपडेट करें

  1. src फ़ोल्डर को स्रोत फ़ोल्डर के रूप में चिह्नित किया गया है
  2. .imls फ़ाइलें मौजूद हैं
  3. एनोटेशन प्रोसेसिंग सक्षम है
  4. अगर आपने हाल ही में @UtilityClass का इस्तेमाल किया है तो इसका कारण भी हो सकता है, बग लिंक

यदि सब कुछ ठीक है, तो आप दिए गए क्रम में निम्नलिखित समाधान आजमा सकते हैं

  1. फ़ाइल / मॉड्यूल को पुनः साझा करें

  2. यदि यह समस्या ठीक नहीं हुई, तो मावेन निर्भरता की रिपोर्ट करने Maven -> Reimportऔर प्रोजेक्ट का उपयोग कर निर्माण करने का प्रयास करेंBuild -> Rebuild Project

  3. प्रयत्न mvn clean install -DskipTests

  4. IntelliJ कैश को अमान्य करने और उपयोग करते हुए IDE को पुनरारंभ करने का प्रयास करें File > Invalidate caches/ restart

  5. .Idea फ़ोल्डर को हटाएं और प्रोजेक्ट को फिर से खोलें

धन्यवाद, हर कोई जिसने इस प्रश्न का उत्तर दिया है, आप अधिक जानकारी प्राप्त करने के लिए प्रत्येक बिंदु के उत्तर का उल्लेख कर सकते हैं।


1
काम करता है: IntelliJ कैश को अमान्य करने का प्रयास करें और फ़ाइल> अमान्य कैश / पुनरारंभ का उपयोग करके IDE को पुनरारंभ करें
ऊर्जा

2

मुझे पता है कि यह एक पुराना प्रश्न है, लेकिन मेरे हाल के अनुभव के अनुसार, ऐसा इसलिए होता है क्योंकि निर्माण संसाधन या तो हटा दिए जाते हैं या आइडिया उन्हें स्रोत के रूप में पहचान नहीं सकता है।

जहां भी त्रुटि दिखाई देती है, फ़ोल्डर / निर्देशिका के लिए स्रोत प्रदान करें और इस त्रुटि को हल किया जाना चाहिए।

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

इसके बाद एक साफ स्थापित करने की सलाह दी जाती है।


2

मुख्य अनुप्रयोग recompiling। java वर्ग ने मेरे लिए किया, कक्षा> रिकॉम्पाइल पर राइट क्लिक करें


2

मुझे पता है कि यह धागा पुराना है लेकिन, एक और उपाय चलाना था

$ mvn clean install -Dmaven.test.skip=true

और इंटेलीज पर सीएमडी + शिफ्ट + ए (मैक ओएस) -> "सभी मावेन परियोजनाओं को फिर से शुरू करें" टाइप करें।

यदि वह काम नहीं करता है, तो मावेन निर्भरता को फिर से डाउनलोड करने के लिए मजबूर करने का प्रयास करें

$ mvn clean -U install -Dmaven.test.skip=true

मेरे मामले में ऑटोजेनरेटेड कक्षाएं (एक्सएमएल फाइलों के आधार पर) थीं जो कोड के अन्य भागों को संदर्भित करती थीं। मावेन कार्यों के साथ निर्माण करते समय, यदि mvn installएड नहीं होते हैं, तो इंटेलीज ने उन संदर्भों को नहीं देखा और रन-एन्वायरमेंट को विफल कर दिया।
टोकन

2

मेरे लिए लोम्बोक के साथ एक समस्या थी, क्योंकि इसमें एनोटेशन प्रोसेसिंग को सक्षम करने की आवश्यकता है। आप इस चेकबॉक्स पर पा सकते हैंSettings > Build > Compiler > Annotation Processors


धन्यवाद! इसने मेरे लिए इसे ठीक कर दिया।
नयारशा

1

मेरे मामले के लिए, समस्या "स्थिर" के रूप में एक वर्ग विधियों को एनोटेट करने के लिए, इंटेलीज आइडिया में मेरे जावा प्रोजेक्ट में लोम्बोक की प्रायोगिक सुविधा @UtilityClass का उपयोग करने के साथ थी। जब मैंने एनोटेशन का उपयोग करने के बजाय स्पष्ट रूप से कक्षा के प्रत्येक तरीके को "स्थिर" बना दिया, तो सभी संकलन मुद्दे गायब हो गए।


0

चूंकि यह Google पर पहली बार "इंटेलीजे को प्रतीक नहीं मिल सकता है" त्रुटि के लिए खोज कर रहा है, मैं अपने समाधान में भी फेंक दूंगा।

मेरे लिए समस्या यह थी कि मेरी परियोजना एक्लिप्स से उत्पन्न हुई थी, और कुछ फाइलों में उन वर्गों पर निर्भरता थी जो उत्पन्न हुए थे src/generated-sources pom.xml में विनिर्देशों द्वारा । किसी कारण से, यह ठीक से निष्पादित नहीं किया गया था जब मैंने पहली बार परियोजना खोली और पुनर्निर्माण / पुन: आयात करने में मदद नहीं की, इसलिए फाइलें कभी उत्पन्न नहीं हुईं।

समाधान मॉड्यूल पर राइट-क्लिक करने के लिए था, और Maven -> Generate Sources and Update Foldersउस समस्या को हल करें का चयन करें और मैं संकलन कर सकता था।


0

सुनिश्चित करें कि जिस जाव वर्ग की स्रोत फ़ाइल आप .javaएक्सटेंशन के लिए संदर्भित करना चाह रहे हैं । यह .ajमेरे मामले में था (मैंने इसे बनाते समय "क्रिएट क्लास" के बजाय "क्रिएट पहलू" को हिट किया होगा)। IntelliJ इस फ़ाइल के लिए "सामान्य" वर्ग के समान आइकन दिखाता है, लेकिन कंपाइलर इसे निर्माण के दौरान नहीं देखता है।

इसे मेरे मामले में तय .ajकरने के लिए बदल रहा है .java


0

कभी-कभी आप जो वर्ग चाहते हैं, वह testस्रोत निर्देशिका में होता है। मुझे हुआ, वैसे भी ...


0

मुझे एक ही समस्या हो रही थी सिवाय इसके कि मैं उन कक्षाओं का आयात कर रहा था जिनके लिए निर्भरता किसी भी तरह हल नहीं हो रही थी। मैंने मावेन परियोजनाओं को फिर से ताज़ा किया, परियोजना का पुनर्निर्माण किया। यह अभी भी हल नहीं हुआ। लगता है कि इंटेलीज कुछ गलत तरीके से कैशिंग कर रहा था। मैंने IntelliJ को फिर से शुरू किया और निर्भरता को हल किया। मुझे लगता है कि यह कैश को किसी तरह साफ कर दिया।


0

यदि आप लोम्बोक का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आपने एनोटेशन प्रोसेसिंग को सक्षम किया है।


0

मुझे बिल्ड या री-बिल्ड का प्रस्ताव देने वाले बहुत सारे उत्तर दिखाई दे रहे हैं, लेकिन अगर आपकी समस्या ठीक नहीं होती है, तो बस ध्यान दें कि आईडीईए एक विधि का पता लगा सकता है, लेकिन यह उस मामले में संकलित नहीं करेगा जब आपके पास newपहले जैसा होगा। उदाहरण की अपेक्षा करना।

यहां छवि विवरण दर्ज करें


0

मेरे मामले में, मुझे एक अन्य मॉड्यूल से एक वर्ग खोजने में समस्या थी। में pom.xml, मेरे पास <scope>compile</scope>निर्दिष्ट के साथ बस यह निर्भरता थी । इस लाइन को हटाने से मदद मिली।


-1

मुझे पता है कि यह पुराना है, लेकिन किसी और के लिए, यह सुनिश्चित कर लें कि जो क्लास गायब है वह उसी पैकेज में है जिस क्लास में आपको त्रुटि मिलती है / जहां से आपका कॉलिंग है।


डाउनवोट किया गया है, क्योंकि कक्षाएं अन्य पैकेजों से आयात की जा सकती हैं। आम तौर पर, लक्ष्य वर्ग को आयात किया जाना चाहिए और क्लासपाथ में; मावेन का उपयोग करते समय, निर्भरता को सही ढंग से सेट किया जाना चाहिए।
fxnn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.