IntelliJ IDEA प्रोजेक्ट में बाहरी जार (lib / *। Jar) जोड़ने का सही तरीका


733

IntelliJ IDEA में एक नया जावा प्रोजेक्ट बनाते समय, निम्न निर्देशिका और फाइलें बनाई जाती हैं:

./projectname.iml
./projectname.ipr
./projectname.iws
./src/

मैं ./lib/*.jarप्रोजेक्ट पर अपनी निर्भरता JAR को शामिल करने के लिए IntelliJ IDEA को कॉन्फ़िगर करना चाहता हूं । IntelliJ IDEA में इसे प्राप्त करने का सही तरीका क्या है?


मैं IntelliJ में टर्मिनल में कार्यक्रम चलाने के दौरान समस्या का सामना कर रहा हूं। मैंने प्रोग्राम में जिन कक्षाओं की आवश्यकता है, उनका उपयोग करने के लिए मैंने आयात विवरण का उपयोग किया है। जबकि मैं इसे IDE में चलाता हूं, यह ठीक चलता है। लेकिन जब मैं कमांड लाइन% javac MyProgram.java से संकलन करने की कोशिश करता हूं, तो यह त्रुटि कहती है: प्रतीक नहीं मिल सकता
don_Gunner94

जवाबों:


1304

IntelliJ IDEA में बाहरी जार जोड़ने के चरण:

  1. Fileटूलबार से क्लिक करें
  2. प्रोजेक्ट संरचना ( CTRL+ + SHIFT+ ALT+ Sविंडोज / लिनक्स पर, + ;मैक ओएस एक्स पर)
  3. बाएं पैनल पर मॉड्यूल चुनें
  4. निर्भरता टैब
  5. '+' → जार या निर्देशिका

98
इसके अलावा, एक लीवर फोल्डर जोड़ने पर विचार करें, और "अटैच जार डाइरेक्टरीज़" का उपयोग करें, जो लिबर फोल्डर में सभी जार जोड़ देगा। एक लार्जिश प्रोजेक्ट के लिए, यह आपको प्रत्येक जार को व्यक्तिगत रूप से चुनने के लिए रखता है।
०४

16
भविष्य के संदर्भ के लिए: वह "जोड़ें" बटन खिड़की के दाहिने किनारे से दूर था और मैंने इस पोस्ट को खोजने से पहले और विंडो को आकार देने के लिए सोचने के लिए समय की एक विषम राशि खर्च की। (यह OSX 10.6.5 पर था ...)
डैनियल डिकिसन

7
@joeslice जो केवल काम करता है अगर JAR निर्देशिका रूट में हैं, है ना? यह 'lib' के अंदर सब-डाइरेक्टरीज़ के अंदर JAR के लिए काम नहीं करता है।
खोलें

6
IJIdea 13 में, "ऐड" के बजाय "+"> है।
वल

4
मैं IDEA 14.0.2 का उपयोग कर रहा हूं। ऐड की जगह + सिंबल है। + क्लिक करने के बाद 3 विकल्प हैं: 1. JAR या निर्देशिका 2. पुस्तकालय ... 3. मॉड्यूल निर्भरता ...
रिपन अल वसीम

238

इंटेलीज आईडिया 15 और 2016

  1. फ़ाइल > प्रोजेक्ट संरचना ...

    फ़ाइल> प्रोजेक्ट संरचना

    या प्रेस Ctrl+ Alt+ Shift+S

  2. प्रोजेक्ट सेटिंग्स > मॉड्यूल > निर्भरता > " + " साइन> जार या निर्देशिका ...

    मॉड्यूल> निर्भरता> JAR या निर्देशिका

  3. जार फ़ाइल का चयन करें और ओके पर क्लिक करें, फिर पुष्टि करने के लिए एक और ओके बटन पर क्लिक करें

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

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

  4. आप जार फ़ाइल को "बाहरी लाइब्रेरी" फ़ोल्डर में देख सकते हैं

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


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

इसके अलावा: सुनिश्चित करें कि फ़ाइल सिस्टम अनुमतियाँ.jar फ़ाइलों के लिए सही तरीके से सेट हैं । chmodलिनक्स या मैकओएस पर उन्हें संशोधित करने के लिए उपयोग करें ।
JJD

4
अभी भी 2018 (वर्ष और इंटेलीज संस्करण) में काम करता है। धन्यवाद। इस तरह से मैं IntelliJ के भीतर से सशस्त्र भालू आम लिस्प पुस्तकालयों को लोड और उपयोग कर सकता हूं, भयानक!
जेसन रॉबिन्सन

हां। मेरी इंटेलीज के साथ भी काम करता है। धन्यवाद!
Bms भारद्वाज

1
@ don_Gunner94, कमांड लाइन के माध्यम से, आपको जार भी इस तरह प्रदान करना चाहिए:javac -cp ".:/my/path/file.jar;" MyProgram.java
ROMANIA_engineer

117

बस "libs" फ़ोल्डर (या संपूर्ण "libs" फ़ोल्डर) के तहत .jar को कॉपी-पेस्ट करें, उस पर राइट क्लिक करें और सूची से 'Add as Library' विकल्प चुनें। यह बाकी काम करेगा ...

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


सबसे सरल और जिस तरह से हम ग्रहण के समय से करते आ रहे हैं।
सूफियान


3
परेशान करने की तरह यह अभी भी एक "नाम" के लिए पूछता है, तो क्या आप वहां कोई जंक छोड़ सकते हैं?
dividebyzero

इससे मुझे भी मदद मिली!
प्रीति जोशी

मैं IntelliJ में टर्मिनल में कार्यक्रम चलाने के दौरान समस्या का सामना कर रहा हूं। मैंने प्रोग्राम में जिन कक्षाओं की आवश्यकता है, उनका उपयोग करने के लिए मैंने आयात विवरण का उपयोग किया है। जबकि मैं इसे IDE में चलाता हूं, यह ठीक चलता है। लेकिन जब मैं कमांड लाइन% javac MyProgram.java से संकलन करने का प्रयास करता हूं, तो यह त्रुटि कहती है: प्रतीक नहीं मिल सकता है। -
don_Gunner94

20

आप उन्हें अपने मॉड्यूल में पुस्तकालयों के रूप में जोड़ते हैं।

मेरे पास आमतौर पर /libमेरे स्रोत में एक निर्देशिका है। मैंने वहां जितने भी जेएआर की जरूरत है, एक पुस्तकालय के रूप में जोड़ा / परिवाद दिया, और इसे अपने मॉड्यूल निर्भरता का हिस्सा बनाया।

2018 अपडेट: मैं अब IntelliJ 2017/2018 का उपयोग कर रहा हूं।

मैं निर्भरता प्रबंधन के लिए मावेन और नेक्सस के लिए पूरी तरह से प्रतिबद्ध हूं।

यह दुनिया जिस तरह से चली गई है। हर खुला स्रोत जावा परियोजना जिसे मैं मावेन या ग्रैडल के उपयोग के बारे में जानता हूं। तुम भी।


हाँ, लेकिन क्या होगा अगर मावेन पोम pom.xml नहीं कहा जाता है? तब ऐसा लगता है कि मैं मावेन निर्भरता को नहीं पढ़ सकता।
user1001630

4
कन्वेंशन इसे pom.xml कहा जाता है। सम्मेलन का पालन करें और अपनी फ़ाइल का नाम बदलें।
duffymo

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

यह ध्वनि सलाह है। जार को मैन्युअल रूप से जोड़ना समय लगता है और त्रुटि की संभावना है। आपके आश्रितों को हमेशा "कोड के माध्यम से", pom.xml(मावेन के लिए) या समतुल्य के लिए समतुल्य होना चाहिए।
वाइकिंगस्टीवेट

1
सभी JARs का रेपो है। यदि यह एक सार्वजनिक या निजी रेपो में उपलब्ध नहीं है, तो आप इसे अपने स्थानीय .m2 में मैन्युअल रूप से स्थापित कर सकते हैं। अन्यथा करने का कोई कारण नहीं है।
duffymo

17

यदि आप अपने प्रोजेक्ट को ग्रेडेल के साथ बना रहे हैं, तो आपको बिल्ड.ग्रेड में निर्भरता के लिए एक पंक्ति जोड़ने की आवश्यकता है:

buildscript {
    ...
}
...

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
}

और फिर अपने रूट प्रोजेक्ट या मॉड्यूल में फ़ोल्डर जोड़ें:

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

फिर आप अपने जार को वहीं छोड़ देते हैं और आप जाने के लिए अच्छे हैं :-)


मैं IntelliJ में टर्मिनल में कार्यक्रम चलाने के दौरान समस्या का सामना कर रहा हूं। मैंने प्रोग्राम में जिन कक्षाओं की आवश्यकता है, उनका उपयोग करने के लिए मैंने आयात विवरण का उपयोग किया है। जबकि मैं इसे IDE में चलाता हूं, यह ठीक चलता है। लेकिन जब मैं कमांड लाइन% javac MyProgram.java से संकलन करने का प्रयास करता हूं, तो यह त्रुटि कहती है: प्रतीक नहीं मिल सकता है। -
don_Gunner94

7

मैं इस पद्धति का उपयोग करता हूं और यह अच्छी तरह से काम करती है:

1- फोल्डर के .jarनीचे फाइल कॉपी और पेस्ट करें libs

2- जोड़े compile fileTree(dir: 'libs', include: '*.jar')के लिए dependenciesमें build.gradleतो सभी जार libsफ़ोल्डर शामिल किया जाएगा ..

3- libsफ़ोल्डर पर राइट क्लिक करें और सूची से 'लाइब्रेरी के रूप में जोड़ें' विकल्प चुनें।


धन्यवाद, यह केवल एक चीज थी जो मेरे लिए काम करती थी!
ग्रेगॉर्डी

मैं IntelliJ में टर्मिनल में कार्यक्रम चलाने के दौरान समस्या का सामना कर रहा हूं। मैंने प्रोग्राम में जिन कक्षाओं की आवश्यकता है, उनका उपयोग करने के लिए मैंने आयात विवरण का उपयोग किया है। जबकि मैं इसे IDE में चलाता हूं, यह ठीक चलता है। लेकिन जब मैं कमांड लाइन% javac MyProgram.java से संकलन करने का प्रयास करता हूं, तो यह त्रुटि कहती है: प्रतीक नहीं मिल सकता है।
don_Gunner94

5

यदि प्रोजेक्ट प्रॉजेक्ट फ़ाइलों में ठीक से नहीं जोड़े गए हैं, तो लाइब्रेरी सीधे किसी भी प्रोग्राम में उपयोग नहीं की जा सकती हैं।

यह आसानी से इंटेली जे की तरह स्मार्ट आईडीई में किया जा सकता है।

1) एक कन्वेंशन के रूप में सबसे पहले अपने प्रोजेक्ट src फ़ाइल के तहत एक फ़ोल्डर नाम 'libs' जोड़ें। (यह आईडीई स्वयं का उपयोग करके आसानी से किया जा सकता है)

2) फिर अपनी लाइब्रेरी फ़ाइल (उदाहरण: .jar फ़ाइल) को 'libs' नाम के फ़ोल्डर में कॉपी या जोड़ें।

3) अब आप लायब्रेरी फ़ाइल को libs फ़ोल्डर के अंदर देख सकते हैं। अब फ़ाइल पर राइट क्लिक करें और 'लाइब्रेरी के रूप में जोड़ें' चुनें। और यह आपके प्रोग्राम की सभी प्रासंगिक फाइलों को ठीक कर देगा और लाइब्रेरी आपके उपयोग के लिए सीधे उपलब्ध होगी।

कृपया ध्यान दें:

जब भी आप किसी प्रोजेक्ट में लाइब्रेरी जोड़ रहे हैं, तो सुनिश्चित करें कि प्रोजेक्ट लाइब्रेरी को सपोर्ट करता है


3

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

यहाँ पदचिह्न है:

फ़ाइल -> परियोजना संरचना -> मॉड्यूल -> (उचित मॉड्यूल का चयन करें यदि आपके पास अधिक है) -> निर्भरता -> + -> JAR या पुस्तकालय


3

जब मैं पिछले उत्तरों से सहमत हूं, तो यह ध्यान रखना महत्वपूर्ण है कि उन बाहरी पुस्तकालयों के कोड का उपयोग कैसे किया जाए।

उदाहरण के लिए बाहरी पुस्तकालय में एक वर्ग का उपयोग करने के लिए, आप बाहरी पुस्तकालय के नाम के बाद आयात कीवर्ड का उपयोग करना चाहेंगे , तब तक डॉट संकेतन के साथ जारी रखा जब तक वांछित वर्ग तक नहीं पहुंच जाता।

नीचे दी गई छवि को देखने के लिए कि मैं क्विकफ़िंज लाइब्रेरी से CodeGenerationException क्लास कैसे आयात करता है

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

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