java - जेएनआई साझा लाइब्रेरी(जेडीके) लोड करने में विफल




windows eclipse (20)

जब मैं Eclipse खोलने का प्रयास करता हूं, तो पॉप-अप संवाद कहता है:

जेएनआई साझा लाइब्रेरी को लोड करने में विफल "सी: / जेडीके /bin/client/jvm.dll" `।

इसके बाद, ग्रहण बल बंद हो जाता है।

यहां कुछ बिंदु दिए गए हैं जिन्हें मैं बनाना चाहता हूं:

  • मैंने यह देखने के लिए जांच की कि क्या उस रास्ते में कुछ भी मौजूद है या नहीं। यह अस्तित्व में है
  • मेरा ग्रहण और जावा एसई विकास किट 64-बिट दोनों हैं। मैंने अपने सिस्टम की जांच की, और यह 64-बिट संभाल सकता है।
  • मैंने Google और स्टैक ओवरफ़्लो पर इस समस्या की खोज की है, और मुझे मिला एकमात्र उत्तर जेडीके और ग्रहण के 32-बिट संस्करणों को डाउनलोड करना था।

32-बिट संस्करणों को डाउनलोड करना कुछ ऐसा है जो मैं केवल एक अंतिम उपाय के रूप में करना चाहता हूं।
इस मुद्दे को हल करने के लिए क्या सुझाव दिया जाएगा?


ओएस, जेडीके और ग्रहण की कामकाजी जोड़ी:

  • 32-बिट ओएस - 32-बिट जेडीके - 32-बिट ग्रहण (केवल 32-बिट)
  • 64-बिट ओएस - 32-बिट जेडीके - 32-बिट ग्रहण
  • 64-बिट ओएस - 64-बिट जेडीके - 64 बिट ग्रहण (केवल 64-बिट)

मेरे पास कई जेडीके और जेआरई स्थापित थे।

उनमें से प्रत्येक को पैथ चर में अपनी प्रविष्टि थी, सब कुछ कम या कम काम कर रहा था।

पाथ चर से निर्णय लेते हुए, कुछ प्रतिष्ठान पूरी तरह से बेकार थे, क्योंकि उनका कभी भी उपयोग नहीं किया गया था। बेशक, "निष्क्रिय" जावा को मैन्युअल रूप से ग्रहण के भीतर से संदर्भित किया जा सकता है यदि मुझे आवश्यकता हो, लेकिन मैंने कभी ऐसा नहीं किया, इसलिए मुझे वास्तव में उनकी आवश्यकता नहीं थी। (कम से कम मैंने उस समय सोचा था ...)

मैंने गड़बड़ी को साफ किया, सभी मौजूदा जावा को हटा दिया, केवल जेडीके + जेआरई 1.7 64-बिट स्थापित किया।

एक्लिप्स 'इंस्टॉलेशन' में से एक बाद Failed to Load the JNI shared Library में Failed to Load the JNI shared Library और ताजा स्थापित jvm.dll सापेक्ष एक दिया गया पथ जहां यह jvm.dll होना सोचा था।

असफल ग्रहण मेरे सभी आईडीई का एकमात्र ऐसा था जो अभी भी मेरे अन्य सभी 64-बिट सेटअप पर 32-बिट संस्करण था।

eclipse.ini में अक्सर उल्लेख किए गए वीएम तर्कों को जोड़ना मेरे मामले में कोई उपयोग नहीं था (क्योंकि मेरे पास केवल संबंधित जेडीके / जेआरई था।)

मैं यह पता लगाने में भी असमर्थ था कि यह ग्रहण 32-बिट या 64-बिट संस्करण था (मैं इसे टास्क मैनेजर में नहीं देख सकता था, क्योंकि इस ग्रहण 'स्थापना' शुरू नहीं होगी। और चूंकि उसके पास था थोड़ी देर के बाद से मैंने इसे स्थापित किया था, मैं इसके संस्करण को भी याद नहीं कर सका।)

यदि आप एक नए जेडीके और पुराने JRE तो आप भी परेशानी के लिए हो सकते हैं, लेकिन फिर यह एक java.lang.UnsupportedClassVersionError लगता है, IIRC


Eclipse.ini की शुरुआत में -vm पैरामीटर और उसके मान को 2 लाइनों पर जोड़ना महत्वपूर्ण है

-vm सी: \ प्रोग्राम फ़ाइलें \ जावा \ jdk1.7.0_45 \ bin \ javaw.exe


आप उस समस्या को कई अन्य प्रतिकृति के रूप में हल कर सकते हैं। आपको उस ग्रहण और JDK की आवश्यकता 64-बिट्स पर 32-बिट या दोनों होनी चाहिए । ओएस की वास्तुकला कोई फर्क नहीं पड़ता है जबकि अन्य एक ही प्रकार के आर्किटेक्चर पर रहते हैं।


आपको 64-बिट तीनों की आवश्यकता है:

  • 64-बिट ओएस
  • 64-बिट जावा
  • 64-बिट ग्रहण

आपने पर्यावरण चर में JAVA_HOME और PATH का उचित संस्करण बदल दिया है।


इस त्रुटि का अर्थ है कि ग्रहण का आर्किटेक्चर जावा रनटाइम के आर्किटेक्चर से मेल नहीं खाता है, यानी यदि कोई 32-बिट है तो दूसरा एक जैसा होना चाहिए, न कि 64-बिट।

सबसे विश्वसनीय फिक्स eclipse.ini में JVM स्थान निर्दिष्ट करना है:

-vm
C:\Program Files (x86)\Java\jdk1.7.0_55\bin\javaw.exe

महत्वपूर्ण: ये दो पंक्तियां -मार्ग से पहले आनी चाहिए। उद्धरण का प्रयोग न करें; रिक्त स्थान की अनुमति है।


एक अनुपलब्ध jvm.dll फ़ाइल के लिए, हम jvm.dll फ़ाइल का पथ jvm.dll फ़ाइल में प्रदान कर सकते हैं

-vm
C:\Progra~1\Java\jdk1.6.0_38\jre\bin\server\jvm.dll

पथ और डबल कोट्स में किसी भी स्थान को हटाने के लिए यहां महत्वपूर्ण है। जब मैंने उद्धरण और स्थान हटा दिया तो यह मेरे लिए काम करता था।

मुझे उम्मीद है कि यह किसी की मदद करेगा।


एक और विकल्प है:

Eclipse.exe पर शॉर्टकट बनाएं। शॉर्टकट खोलें और लक्ष्य को इसमें बदलें:

"C:\Program Files\eclipse\eclipse.exe" -vm "c:\Program Files\Java\jdk1.7.0_04\bin\javaw.exe"

अपनी स्थापना के लिए, सुनिश्चित करें कि स्थान सही ग्रहण स्थापना निर्देशिका और सही javaw.exe स्थापना निर्देशिका को javaw.exe

(एक्लिप्स और जावा के 64/32 बिट संस्करणों को निश्चित रूप से वही होना चाहिए।)


जावा 6 से जावा 7 में अपग्रेड करने के बाद मेरे पास एक ही समस्या थी। मैंने जावा 6 (64 बिट) को हटा दिए और जावा 7 (64 बिट) को पुनः स्थापित किया, ग्रहण ने काम किया। :)


जावा के कई संस्करण हैं, सन जेडीके और जेआरॉकिट, दोनों 32 बिट और 64-बिट इत्यादि। और जावा ईई (जुनो) के लिए 64-बिट ग्रहण के नए इंस्टॉलेशन के साथ इस समस्या में भाग गए।

क्या काम नहीं किया:

पीटर राडर द्वारा सुझाए गए 64-बिट तीनों:

मैं 64-बिट ओएस (64 विंडोज) पर 64-बिट ग्रहण का उपयोग कर रहा हूं।

मैंने सुनिश्चित किया कि सूर्य जेडीके 7 64-बिट डिफ़ॉल्ट जावा संस्करण था। जब मैंने कमांड लाइन (cmd.exe) से "जावा-वर्जन" टाइप किया, तो सूर्य जेडीके 7 64-बिट वापस कर दिया गया ...

java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)

इससे मेरे लिए समस्या का समाधान नहीं हुआ।

क्या काम किया है:

जयेश कवथीया द्वारा सुझाए गए अनुसार eclipse.ini को -vm विकल्प जोड़ना:

मैंने eclipse.ini को निम्नलिखित जोड़ा:

-vm
C:/apps/java/jdk7-64bit/bin/javaw.exe

ध्यान दें:

मुझे अपनी मशीन पर जेडीके या जेआरई के विभिन्न संस्करणों में से किसी एक को अनइंस्टॉल करने की आवश्यकता नहीं थी।


धन्यवाद misterfrb , मुझे एहसास हुआ कि ग्रहण इस त्रुटि को दे रहा था, क्योंकि मैंने अभी ओरेकल 10 जी डेवलपर सूट स्थापित किया था, और यह C:\DevSuiteHome_1 फ़ोल्डर में jvm.dll फ़ाइल की तलाश में था (मैंने फिर से C:\DevSuiteHome_1 इंस्टॉल करने का विकल्प चुना होगा डेवलपर सूट के साथ)।

पथ परिवर्तनीय से DevSuiteHome लाइनों को हटाने और 64-बिट jvm.dll लिए सुधार स्थान जोड़ने के jvm.dll (सुनिश्चित नहीं है कि यह आवश्यक था, बिना प्रयास नहीं किया गया), ग्रहण फिर से काम करता है, और डेवलपर सूट अभी भी करता है।


निश्चित रूप से, आपको जेडीके और ग्रहण का एक संगत संस्करण होना चाहिए, लेकिन आपको निम्न पंक्तियों में eclipse.ini फ़ाइल में भी जोड़ने की आवश्यकता है:

-vm
yourdrive\java\bin

उन्हें अपनी eclipse.ini फ़ाइल की पहली दो पंक्तियां बनाएं।


मुझे एक ही समस्या थी

मैंने इसे 64 बिट जेवीएम इंस्टॉल करके हल किया

http://www.java.com/en/download/manual.jsp


मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। इसे निम्नलिखित करने का हल किया गया था।

  • ग्रहण को प्रोग्राम फ़ाइलों में ले जाएं ( प्रोग्राम फ़ाइलों (x86) पर नहीं )।
  • 'पथ' पर्यावरण चर से जावा के 32-बिट संस्करण के पथ को हटाएं।

मेरे पास जावा के दोनों संस्करण स्थापित हैं, लेकिन ग्रहण 32-बिट एक का उपयोग करने की कोशिश कर रहा है।


मेरे ऊपर दिए गए उत्तरों ने मुझे इतना लुभाया, कि मैंने ओएस, Eclipse और JVM तीनों के साथ सभी संभव संयोजनों को चलाने के लिए निर्णय लेने का फैसला किया। वैसे भी, जो भी मेरी पोस्ट खोद रहा है और पढ़ रहा है, निम्न को हॉट स्पॉट के रूप में जांचें (मैं विंडोज 7 उपयोगकर्ता हूं)।

  1. आप समझते हैं कि प्रोग्राम फ़ाइलें और प्रोग्राम फ़ाइल (x86) दो अलग-अलग फ़ोल्डर्स हैं ... x86 प्रोग्राम के 32-बिट संस्करण के लिए है और पूर्व 64-बिट संस्करण है।

  2. यदि आपके पास Java कई संस्करण अलग-अलग बैथन और रिलीज़ संस्करणों के साथ स्थापित हैं, जो कि कई ओपन सोर्स IDEs , प्रबंधकों, प्रशासनिक कंसोल के साथ होने वाला है, तो सबसे अच्छा विकल्प है VM तर्क सीधे eclipse.ini फ़ाइल में सेट करना। यदि आप नहीं करते हैं, ग्रहण पागल हो जाएगा और खुद को खोजने की कोशिश करेगा जो अच्छा नहीं है।


मेरे साथ भी यही हुआ। मेरे पास 64-बिट ग्रहण था, लेकिन मेरा जेडीके 32-बिट था। इसलिए मैंने 64-बिट संस्करण स्थापित किया और यह अभी ठीक है।


वैकल्पिक रूप से, JRE और ग्रहण का वही "बिट" संस्करण प्राप्त करें और फिर नीचे दिए गए लक्ष्य के साथ एक नया शॉर्टकट बनाएं (स्थापित जेआरई और ग्रहण स्थान / पथ को प्रतिस्थापित करें):

"C:\studio\eclipse.exe" -vm "C:\Program Files\Java\jre7\bin\server\jvm.dll" eclipse.vm="C:\Program Files\Java\jre7\bin\server\jvm.dll" java.home="C:\Program Files\Java\jre7" java.runtime.version=1.7.0

यह ट्रिक काम आना चाहिए।


सरल, मेरे पास 64-बिट ओएस, 32-बिट Eclipse और दोनों जेडीके 32 और 64 स्थापित हैं ... मैंने अभी 64-बिट जेडीके को अनइंस्टॉल किया है और ग्रहण ठीक काम कर रहा है ..


सुनिश्चित करें कि आप प्रशासक अधिकारों के साथ ग्रहण शुरू कर रहे हैं।


सुनिश्चित करें कि आपकी eclipse.ini फ़ाइल में निम्न पंक्तियां शामिल हैं।

-vm
C:\path\to\64bit\java\bin\javaw.exe

उदाहरण के लिए मेरा eclipse.ini:

-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.2.R36x_v20101222
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
-vm
C:\Program Files\Java\jdk1.6.0_32\bin\javaw.exe
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

ओएस और ग्रहण दोनों 64 बिट या 32 बिट दोनों को समान रखें और eclipse.ini कॉन्फ़िगर करें।

आपकी eclipse.ini फ़ाइल आपके ग्रहण फ़ोल्डर में पाई जा सकती है।





jni