IntelliJ IDEA में एप्लिकेशन रन प्रोफ़ाइल में classpath में निर्देशिका कैसे जोड़ें?


206

मैं एक एप्लिकेशन रन प्रोफ़ाइल के classpath में एक निर्देशिका जोड़ने की कोशिश कर रहा हूं

अगर मैं -p x का उपयोग करके ओवरराइड करता हूं: VM सेटिंग्स में लक्ष्य / कक्षाएं, मुझे निम्न त्रुटि मिलती है:

java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain

मेरी परियोजना के लिए क्लासपाथ में एक निर्देशिका जोड़ने के बारे में कोई विचार?


1
यह मेरे लिए स्पष्ट नहीं है, जहां आप उसे जोड़ने का प्रयास कर रहे हैं। IJ कमांड लाइन से? या परियोजना के गुणों में?
हाइको रुपे

जवाबों:


270

Intellij 13 में, यह फिर से थोड़ा अलग दिखता है। यहाँ Intellij 13 के लिए निर्देश दिए गए हैं:

  1. प्रोजेक्ट दृश्य पर क्लिक करें या विंडो के बाईं ओर "1: प्रोजेक्ट" बटन पर क्लिक करके या Alt + 1 पर क्लिक करके इसे अनहाइड करें
  2. अपना प्रोजेक्ट या उप-मॉड्यूल खोजें और इसे हाइलाइट करने के लिए उस पर क्लिक करें, फिर F4 दबाएं, या राइट क्लिक करें और "ओपन मॉड्यूल सेटिंग्स" चुनें (IntelliJ 14 पर यह F12 बन गया)
  3. निर्भरता टैब पर क्लिक करें
  4. दाईं ओर "+" बटन पर क्लिक करें और "जार या निर्देशिका ..." चुनें
  5. अपना रास्ता खोजें और ओके पर क्लिक करें
  6. "चयनित फ़ाइल की श्रेणियाँ चुनें" के साथ संवाद में, चुनें Classes(भले ही यह गुण हो), फिर से ठीक और ठीक दबाएं
  7. अब आप अपना एप्लिकेशन चला सकते हैं और इसमें क्लास पथ में चयनित पथ होगा

2
तो आप दो अलग-अलग निर्देशिकाओं के साथ कॉन्फ़िगरेशन चलाने के लिए कैसे बनाएंगे जो विशेष रूप से एक में मौजूद होना चाहिए, लेकिन दूसरे में नहीं। ग्रहण में आप लॉन्च कॉन्फ़िगरेशन में कुछ भी जोड़ / हटा सकते हैं। क्या IntelliJ इसका समर्थन नहीं करता है?
14αrΚhικ 16

9
यह बहुत स्पष्ट है कि आप में से classpath बदल सकते हैं रन विन्यास को बदलने मॉड्यूल classpath। लेकिन सटीक सवाल था "एक एप्लिकेशन रन प्रोफ़ाइल में क्लासपैथ में डायरेक्टरी कैसे जोड़ें "। तो असली uaaquarius द्वारा दिया गया था
Pavel

धन्यवाद ! चारों ओर खोज के युगों के बाद इसने मेरी समस्या को हल कर दिया!
जोनासकज -

1
चरण 6 मेरे लिए नहीं आता है। मैं intellij 14 पर हूँ। मेरे पास एक फ़ोल्डर है जिसे lib कहा जाता है जहाँ मेरा .jar स्थित है। फ़ोल्डर या जार का चयन सिर्फ पथ को इंटेलीज में पार्स करेगा। अभी भी काम नहीं करता है
Takeru

@Takeru क्या आपने इसका पता लगाया?
रॉशमिश

91

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

  1. प्रोजेक्ट स्ट्रक्चर पर जाएं, मॉड्यूल पर क्लिक करें, और अपने मॉड्यूल पर क्लिक करें
  2. "निर्भरता" टैब चुनें
  3. दाईं ओर "+" बटन पर क्लिक करें और "जार या निर्देशिका ..." चुनें
  4. निर्देशिका (ies) आप चाहते हैं (नोट आप बहु का चयन कर सकते हैं) जोड़ें और ठीक पर क्लिक करें
  5. आने वाले संवाद में, "कक्षाएं" और "जार निर्देशिका" का चयन करें
  6. सुनिश्चित करें कि आप अपने रन लक्ष्य में उस मॉड्यूल का उपयोग कर रहे हैं

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


4
इसे पोस्ट करने के लिए बहुत - बहुत धन्यवाद। आपने मुझे सिर्फ एक-एक घंटे बचाया।
जॉन जियांग

मुझे IJ11 के साथ पहले की तरह ही समस्या है और मुझे इस समय का जवाब मिलने की खुशी थी।
साल

उत्तम। IJ12 के लिए एक ही प्रक्रिया। 'Java.lang.ClassNotFoundException: com / microsoft / jdbc / sqlserver / SQLServerDriver' को हल करने का प्रयास करते समय इस पोस्ट के दौरान यह कनेक्शन समस्या हल हो गई। धन्यवाद
jkmurphy1

6
मुझे चरण 5 नहीं मिलता है :( संवाद अभी सामने नहीं आया है।
चार्ल्स वुड

1
@CharlesWood: जब मैं उनमें से एक उप-फ़ोल्डर वाले दो फ़ोल्डरों का चयन करना चाहता था। मुझे दिखाने के लिए संवाद के लिए फ़ोल्डर नाम के बगल में छोटे तीर प्रतीक के माध्यम से उप-फ़ोल्डरों वाले एक का विस्तार करना था। अन्यथा, संवाद छोड़ दिया जाएगा।
तिमो रीमन्न

35

आप जावा एप्लिकेशन लॉन्चर का -Xbootclasspath / a: पथ विकल्प आज़मा सकते हैं । विवरण द्वारा यह निर्दिष्ट करता है कि "निर्देशकों का एक अलग-अलग-अलग-अलग पथ, JAR अभिलेखागार, और ज़िप अभिलेखागार डिफ़ॉल्ट बूटस्ट्रैप क्लास पथ पर अपील करने के लिए।"


2
कुछ दस्तावेज कैसे -Xbootclasspath पर काम करते हैं: docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#i1018570
लेम्बर्ट

3
यह एक अच्छा जवाब है क्योंकि इसके लिए आपको अपने प्रोजेक्ट कॉन्फ़िगरेशन को बदलने की आवश्यकता नहीं है। वास्तव में मुझे लगता है कि यह सवाल का सबसे अच्छा जवाब देता है।
Chewy

1
यह दुर्भाग्य से मेरे लिए काम नहीं किया, क्योंकि उस क्लासपाथ से लोड किए गए सभी वर्गों में यह परिणाम बूटस्ट्रैप क्लास लोडर द्वारा लोड किया जाता है, जो कोड को तोड़ता है जो मानता है कि Xyz.class.getClassLoader () शून्य नहीं है।
नजोल

@uaaquarius, कमांड लाइन स्ट्रिंग को सीधे संपादित करने का कोई तरीका क्यों नहीं है? यह निराश करने वाला है।
पेसियर

@uaaquarius, ऐसा क्यों है कि अगर मैं stackoverflow.com/a/16742141/632951mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jar पर अन्य विधि का उपयोग करके निर्भरता के रूप में जोड़ता हूं, तो यह काम करता है, लेकिन इसका उपयोग नहीं करता है? -Xbootclasspath/a
पचेरियर

19

मैं आपके मॉड्यूल निर्भरता टैब में (परियोजना संरचना संवाद में) आइडिया 8. का उपयोग कर रहा हूं। एक "मॉड्यूल लाइब्रेरी" जोड़ें। वहाँ आप जोड़ने के लिए एक जार निर्देशिका का चयन कर सकते हैं। फिर सुनिश्चित करें कि रन प्रोफाइल सही मॉड्यूल के क्लासपाथ और जेडडीके का उपयोग कर रहा है जब यह चलता है (यह रन कॉन्फ़िगरेशन डायलॉग में है।



2

मान लीजिए कि आपको अपने वर्गपथ में केवल x: लक्ष्य / कक्षाएं चाहिए । फिर आप इस फ़ोल्डर को अपने classpath और% IDEA% \ lib \ idea_rt.jar में जोड़ें। अब यह काम करेगा। बस।


4
सवाल यह है कि आप इस फ़ोल्डर को IDEA में अपने classpath में कैसे जोड़ सकते हैं?
पेसियर

0

आपको कक्षाओं के फ़ोल्डर को निर्दिष्ट करने की आवश्यकता नहीं है। इंटेलीज को इसे लोड करने में सक्षम होना चाहिए। यदि "प्रोजेक्ट कंपाइलर आउटपुट" रिक्त है, तो आपको यह त्रुटि मिलेगी।

बस सुनिश्चित करें कि नीचे मूल्य निर्धारित है: प्रोजेक्ट सेटिंग्स -> प्रोजेक्ट -> प्रोजेक्ट कंपाइलर आउटपुट आपके प्रोजेक्टडिर / आउट फ़ोल्डर में

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