में लोड किया गया है मैंने एक वेब-एप्लिकेशन तैनात किया है, जिसमें निम्न कोड शामिल है।java.lang.UnsatisfiedLinkError: मूल पुस्तकालय XXX.so पहले से ही किसी अन्य क्लासलोडर
System.loadLibrary(org.opencv.core.Core.NATIVE_LIBRARY_NAME);
अब, मैंने एक और वेब-एप्लिकेशन तैनात किया है जिसमें एक ही कोड है। जब यह लाइब्रेरी लोड करने का प्रयास करता है, तो यह निम्न त्रुटि फेंक देता है।
Exception in thread "Thread-143" java.lang.UnsatisfiedLinkError:
Native Library /usr/lib/jni/libopencv_java248.so already loaded in
another classloader
मैं इन दोनों अनुप्रयोगों को एक साथ चलाने के लिए चाहता हूं।
-
एक आवेदन में
- लोडेड पुस्तकालय और एक अन्य आवेदन में अपवाद ऊपर पकड़ा
- निकाला गया जार दोनों आवेदन से और opencv.jar (यानी/usr में बिलाव के classpath में डाल दिया: अब मैं क्या कोशिश की है जब तक
/शेयर/tomcat7/lib)।
लेकिन ऊपर से कोई भी काम नहीं करता, कोई सुझाव जिसके द्वारा मैं यह कर सकता हूं?
संपादित करें: विकल्प दो के लिए,
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
इस लाइन काम करता है लेकिन अपवाद है जब मैं वास्तव में है कि पुस्तकालय का उपयोग करने के लिए जा रहा हूँ हो जाता है। यही कारण है कि जब मैं
Mat mat = Highgui.imread("/tmp/abc.png");
निम्न उपाय अपनाते हैं और मैं इस अपवाद
java.lang.UnsatisfiedLinkError: org.opencv.highgui.Highgui.imread_1(Ljava/lang/String;)J
at org.opencv.highgui.Highgui.imread_1(Native Method)
at org.opencv.highgui.Highgui.imread(Highgui.java:362)
संख्या 2 काम करना चाहिए था। आप सुनिश्चित हैं कि आपने इसे कहीं और हटा दिया है और वेबपैप में कुछ अन्य जार नहीं है जो lib को लोड करने का प्रयास करता है? – user2543253
@ user2543253 कृपया मेरे संपादित प्रश्न की जांच करें। –
क्या आप जांच सकते हैं कि 'हाईगुई' उसी वर्ग लोडर द्वारा लोड किया गया है जो 'loadLibrary' करता है? अन्यथा मूल तरीकों को प्रारंभ नहीं किया जाता है। – user2543253