java IntelliJ आइडिया और जेएनआई: ज़रूर डीएलएल के हैं जहां उन्हें निष्पादन के लिए होना चाहिए




dll intellij-idea (3)

आप java.library.path सिस्टम प्रॉपर्टी को जावा में java.library.path सकते हैं जहां देशी लाइब्रेरी देखने के लिए है।

-Djava.library.path=path/to/dll

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

मैं किसी प्रोजेक्ट में एक तृतीय पक्ष पुस्तकालय के साथ काम कर रहा हूं, और इसमें दो। Dll फ़ाइलें और एक जेएनआई रैपर प्रदान करने के लिए। टेस्ट प्रोजेक्ट जो तीसरी पार्टी के विक्रेता को .jar फ़ाइल में शामिल किया जा सकता है, निम्न कमांड का उपयोग कर कॉल किया जा सकता है:

java -cp product.jar com.company.samples.product.Test

यह ठीक काम करता है, जब तक कि .jar और दोनों डीएलएल एक ही निर्देशिका में हैं

मेरी परियोजना में मैंने जार फ़ाइल और डीएलएल को उसी निर्देशिका में रखा है, और फिर जार फ़ाइल को इंटेलीज आईडिया में लाइब्रेरी के रूप में संदर्भित किया है, लेकिन इसके कारण पुस्तकालय डीएलएल का पता लगाने में असमर्थ है। क्या ऐसा कोई तरीका है जो मैं आइडिया को बता सकता हूँ जहां डीएलएल हैं, ताकि उन्हें निष्पादन के दौरान जार फ़ाइल के रूप में एक ही निर्देशिका में आउटपुट कर सकें?


DLL पथ चर से लोड किया जाता है एप्लिकेशन लॉन्च करते समय आप मूल्य बदल सकते हैं

वैकल्पिक रूप से, आप DLL के लिए पथ (फिर से पर्यावरण चर / सिस्टम चर का उपयोग कर) का निर्माण कर सकते हैं और इसे System.load () के द्वारा लोड कर सकते हैं


IntelliJ में जब आप एक निर्देशिका जोड़ना चाहते हैं जहां .DLL पाया जाता है:

1) परियोजना संरचना संवाद खोलें (जैसे Ctrl + Shift + Alt + S )।

2) संवाद के बाएं हाथ के फलक में, मॉड्यूल चुनें।

3) दाहिनी ओर फलक में, रुचि के मॉड्यूल का चयन करें।

4) संवाद के दाहिनी ओर भाग में, मॉड्यूल पृष्ठ पर, निर्भरता टैब का चयन करें।

5) निर्भरता टैब पर, "+" पर क्लिक करें और जार या निर्देशिका चुनें।

6) खुलने वाले संवाद में, आवश्यक फ़ाइलें और फ़ोल्डर्स चुनेंये व्यक्तिगत। क्लास और। जावा फाइल, निर्देशिका और अभिलेखागार (.jar और .zip) हो सकते हैं जिसमें ऐसी फाइलें और साथ ही साथ जावा मूल पुस्तकालयों ( .dll , .so या .jnilib) के साथ निर्देशिकाएं हो सकती हैं। ओके पर क्लिक करें।

Https://www.jetbrains.com/help/idea/2016.3/configuring-module-dependencies-and-libraries.html#d1860048e28 पर मूल स्पष्टीकरण के लिए देखें।

इस तरह मैं एमएस एसक्यूएल की एकीकृत सुरक्षा का उपयोग करने के लिए जेडीबीसी ड्राइवर के लिए .dll ( sql_auth.dll ) जोड़ता हूं I





jni