ग्रहण एसडब्ल्यूटी पुस्तकालयों को लोड नहीं कर सकता


295

हर बार जब मैं Ubuntu 12.04 में ग्रहण को खोलने की कोशिश करता हूं तो मुझे एक असंतुष्ट लिंक त्रुटि मिलती है और यह नहीं खुलेगी। मैंने हाल ही में जावा JDK और Android SDK स्थापित किया है, क्या यह समस्या हो सकती है? मैंने इस ट्यूटोरियल का अनुसरण किया ।

यहाँ लॉग जानकारी है:

!SESSION 2012-04-15 21:05:46.902 -----------------------------------------------
eclipse.buildId=I20110613-1736
java.version=1.7.0
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_GB
Command-line arguments:  -os linux -ws gtk -arch x86_64

!ENTRY org.eclipse.osgi 4 0 2012-04-15 21:05:47.885
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
no swt-gtk-3740 in java.library.path
no swt-gtk in java.library.path
Can't load library: /home/tom/.swt/lib/linux/x86_64/libswt-gtk-3740.so
Can't load library: /home/tom/.swt/lib/linux/x86_64/libswt-gtk.so

at org.eclipse.swt.internal.Library.loadLibrary(Library.java:285)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:194)
at org.eclipse.swt.internal.C.<clinit>(C.java:21)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:132)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:695)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:153)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:95)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

मैंने ~/.eclipseडायरेक्ट्री को अनइंस्टॉल और रीइंस्टॉल करने और डायरेक्ट्री हटाने की कोशिश की है, लेकिन यह अभी भी काम नहीं कर रहा है


मुझे कहना चाहिए कि आपका पुस्तकालय मार्ग विषम दिखता है। उन .so फाइलें कहीं एक्लिप्स / प्लगइन्स फोल्डर के भीतर नहीं होनी चाहिए, एक विस्फोट जार के भीतर? क्या आपके पास भी ऐसी कोई निर्देशिका है (~ / .swt / lib / ...)?
मार्को टोपोलनिक

क्या आपने libswt-java-gtk3 स्थापित किया है?
फेडेरिको वेरा

यद्यपि यह नीचे उत्तर दिया गया है, ऐसा लगता है कि यह उबंटू की स्थापना प्रणाली में एक बग बना हुआ है जिसे उठाया जाना चाहिए, क्योंकि यह तब भी बना रहता है जब मैं एप्टीट्यूड / एप्टी-गेट का उपयोग करके ग्रहण को अनइंस्टॉल और पुनर्स्थापित करता हूं। अगर उस मुद्दे का कोई लिंक है, तो इसे यहां उपलब्ध कराना अच्छा होगा, ताकि लोग इसे बढ़ा सकें।
Android.weasel

जवाबों:


661

मेरे Ubuntu 12.04 32 बिट पर । मैं इस आदेश को संपादित करता हूं:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/

और उबंटू 12.04 64 बिट पर प्रयास करें:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/

4
मैंने उस कमांड को ठीक वैसे ही निष्पादित किया जैसा कि आपके पास है और यह काम करता है! ओरेकल जावा 7 के साथ उबंटू 12.04
एमजे

2
मैं इस पद्धति को पसंद करूंगा क्योंकि मुझे एक प्रोजेक्ट के लिए Oracle जावा 7 का उपयोग करना है
रोजाना

2
धन्यवाद। मेरा रास्ता थोड़ा अलग था लेकिन इसने मेरे लिए इसे तय कर दिया। ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/
आर्ट

2
यह दूसरी बार है जब मुझे ऐसा करना पड़ा है: एक बार मेरे काम के कंप्यूटर पर कुछ महीने पहले, और अभी मेरे घर के कंप्यूटर पर, दोनों बार एक ही समस्या के बिना ग्रहण का उपयोग करने के महीनों के बाद। क्या कोई विशेष कारण है कि swt पुस्तकालयों सिर्फ गायब हो जाएगा?
जोन्किन्स

2
यह वास्तविक जीवन रक्षक है! ध्यान दें कि एआरएम पर (जैसे कि मुझे Chrome बुक पर एक्लिप्स चल रहा है) "x86" को "बांह" से बदलना चाहिए अन्यथा यह काम नहीं करेगा!
PoweredByRice

54

हल किया:

क्योंकि मैंने ओरेकल जावा 7 स्थापित किया था, इसने डिफ़ॉल्ट जावा को ओरेकल जावा 7 में बदल दिया था, हालाँकि इसके लिए ओपन जेडडीके होना आवश्यक था।

ठीक करने के लिए, टर्मिनल खोलें और टाइप करें

sudo update-alternatives --config java

यह जावा के विभिन्न प्रकारों की एक सूची लाता है। बस ओपन JDK का चयन करें।


7
लेकिन क्या होगा अगर आप ओरेकल जावा को ग्रहण के साथ इस्तेमाल करना चाहते हैं, और ओपन जेडडीके नहीं, तो कोई ऐसा कैसे कर सकता है? धन्यवाद!
अल्ट्रोज़ोन

इसका कारण यह है कि Oracle जावा 7 अब न तो जार में देशी पुस्तकालय की तलाश में है? मुझे जावा 7 के साथ ही विंडोज़ पर भी यही समस्या है। swt प्रोग्राम ठीक काम करता था
Wudong

मेरे लिए लिनक्स मिंट माया के लिए काम किया।
क्षत्रिय

1
बेशक, अगर आप FOSS पसंद करते हैं, तो OpenJDK पसंद का मंच है, लेकिन (इन कॉर्पोरेट ट्रगलोडाइट्स के साथ हमेशा की तरह) Oracle अपने संस्करण में कुछ हुक लगाता है जो जावा प्लेटफॉर्म के बीच कुछ ऐप्स (और सबसे जावा वेबस्टार्ट ऐप्स) को पोर्ट करने से रोकता है। यह जावा के मुख्य उद्देश्य को सुवाहित करता है, अर्थात् पोर्टेबिलिटी, यही कारण है कि वे वेंडर लॉक-इन ... लॉन्ग लाइव द पायथन का अभ्यास करके खुद को पैर में गोली मार रहे हैं! लंबे समय तक रहना!
वेनेज़ेन

44

बस पुस्तकालयों के लिए पथ निर्दिष्ट करें:

echo "-Djava.library.path=/usr/lib/jni/" >> /etc/eclipse.ini

2
लगता है कि यह सबसे साफ समाधान है।
mspanc

1
सहमत, सबसे साफ और यह विधि स्थायी रूप से एक उबंटू प्रणाली पर त्रुटि से
बचाएगी

2
मेरे लिए उबंटू 64-बिट क्लीनेस्ट सॉल्यूशन पर वास्तव में काम किया है, मैं किसी को
सिमिलिंक

यह एक का उपयोग करने के लिए है अगर आपका उपयोग ओरेकल जावा 7 और खुले नहीं जेडीके
जेम्स किर्कबी

सबसे अधिक मतदान का जवाब काम करता है, लेकिन तब नहीं जब आप "सूद ग्रहण" करते हैं। यह उत्तर श्रेष्ठ है, यह सभी मामलों में काम करता है!
PoweredByRice

14

मेरे मामले में, मुझे /usr/lib/jniनिर्देशिका पूरी तरह से याद आ रही थी । द्वारा तय किया गया

sudo apt-get install libswt-gtk-3-jni libswt-gtk-3-java

बाद में सहानुभूति की आवश्यकता नहीं है। ग्रहण सामान्य रूप से शुरू हुआ।


2
जानी स्थापित करने के बाद। मैंने 32 बिट के लिए इस कमांड का उपयोग करके फाइल कॉपी की: ln -s / usr / lib / jni / libswt- * ~ / .swt / lib / linux / x86 /
padman

1
मेरे मामले में, मुझे sudo apt-get install libswt-gtk-4-jni libswt-gtk-4-java
aleixrocks

4
पुस्तकालय लोड नहीं कर सकते: /home/tom/.swt/lib/linux/x86_64/libswt-gtk-3740.so
लाइब्रेरी लोड नहीं कर सकते: /home/tom/.swt/lib/linux/x86_64/libswt-gtk.so

पुस्तकालयों की तरह लग रहा है चाहिए .swt / lib / linux / x86_64 / अगर वहाँ नहीं हैं तो आप इसे देख सकते हैं:

libswt-gtk.so का पता लगाएं

पुस्तकालयों को पूरी निर्देशिका को /home/tom/.swt/lib/linux/x86_64 पर कॉपी करना चाहिए


मैं linux 64 बिट में इसी तरह की त्रुटि का सामना कर रहा हूँ, क्या आप इस सवाल की जांच कर सकते हैं, stackoverflow.com/questions/21980558/…
हेल्पिंग हैंड ..

3

मैं स्कॉट के साथ सहमत हूं, उसने जो सूचीबद्ध किया वह काम किया। हालाँकि सिर्फ किसी भी डायरेक्टरी से इसे चलाने से काम नहीं चला। मुझे cd / home / * /.swt/lib/linux/x86_64/ 0 फाइलों में जाना था

निर्देशिका पहले और फिर लिंक कमांड चलाएँ:

32 बिट के लिए:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/

और उबंटू 12.04 64 बिट पर:

ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/


2

यदि आप oracle java का उपयोग करके ग्रहण शुरू करते हैं, तो ग्रहण SWT या SVN लाइब्रेरी जैसी देशी लाइब्रेरी खोजने में विफल हो सकता है। SWT-JNI लाइब्रेरी / usr / lib / jni / में स्थित हैं और SVN-JNI लाइब्रेरी / usr / lib / x86_64-linux-gnu / jni / में स्थित हैं।

आदेश के साथ ग्रहण शुरू करने के बजाय

eclipse

आप कमांड का उपयोग कर सकते हैं

env LD_LIBRARY_PATH=/usr/lib/jni/:/usr/lib/x86_64-linux-gnu/jni/:$LD_LIBRARY_PATH eclipse

पारित करने के लिए पर्यावरण चर LD_LIBRARY_PATH ग्रहण करने के लिए। ग्रहण देशी पुस्तकालयों को ढूंढेगा और ठीक से चलेगा।


यह मुझे यह त्रुटि देता है मैं इसे Java HotSpot(TM) 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0 WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.eclipse.osgi.internal.baseadaptor.BaseStorage (file:/usr/lib/eclipse/plugins/org.eclipse.osgi_3.8.1.dist.jar) to method java.net.URLClassLoader.addURL(java.net.URL) WARNING: Please consider reporting this to the maintainers of org.eclipse.osgi.internal.baseadaptor.BaseStorage कैसे हल कर सकता हूं?
योनेला नुबा

1

मुझे इस त्रुटि के बारे में तब पता चला, जब 64-बिट लाइनक्स के तहत ग्रहण के 32-बिट निर्माण को शुरू करने की कोशिश की गई। Ia32-libs पैकेज स्थापित करने के बाद समस्या हल हो गई थी।


0

कृपया सुनिश्चित करें कि आपका घर विभाजन निष्पादन योग्य अनुमतियों के साथ आरोहित है। यह डिफ़ॉल्ट है, लेकिन यदि आप इसे निष्पादन विकल्प के बिना माउंट करते हैं, तो आपको यह त्रुटि मिलेगी।


0

संभवतः एक अधिक सामान्य विधि है:

  • Openjdk का गैर-हेडलेस संस्करण स्थापित करें,
  • स्थापित करें, चलाएं और ग्रहण को बंद करें।
  • Openjdk की स्थापना रद्द करें
  • oracle के JDK को स्थापित करें

0

मैंने JDK को 32 बिट स्थापित किया है क्योंकि मुझे त्रुटियां मिल रही हैं। JDK 64 बिट http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html jdk-8u131-linux-x64.tar .gz (कृपया 64 संस्करण डाउनलोड करें) और डाउनलोड करने के बाद इंस्टॉल करें 64 बिट "एक्लिप्स-इंस्टेंस-लाइनक्स 64.टार.गज़"।


0

लिनक्स के लिए विंडोज सबसिस्टम (WSL) के लिए आपको आवश्यकता होगी

apt install libswt-gtk-4-jni

यदि आपके पास OpenJDK 8 नहीं है, तो आपको भी आवश्यकता होगी

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