org.eclipse.swt.SWTError: ubuntu पर ग्रहण चलाते समय कोई और हैंडल [gtk_init_check () विफल]


24

मैं अपने ubuntu VM में नीचे दिए गए कमंड के साथ ग्रहण खोलने की कोशिश कर रहा था .. और जैसे ही मैं ऐसा करता हूं, मुझे हमेशा नीचे का अपवाद मिल जाता है -

ubuntu@username-dyn-vm1-48493:~$ eclipse
Eclipse:
An error has occurred. See the log file
/home/ubuntu/.eclipse/org.eclipse.platform_3.8_155965261/configuration/1381367113197.log.

इसलिए जब मैं उस विशेष लॉग फ़ाइल में गया, तो यह वह है जो मैं लॉग में देख सकता हूं -

ubuntu@username-dyn-vm1-48493:~$ more /home/ubuntu/.eclipse/org.eclipse.platform_3.8_155965261/configuration/1381367113197.log
!SESSION 2013-10-10 01:05:13.088 -----------------------------------------------
eclipse.buildId=debbuild
java.version=1.7.0_25
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86_64

!ENTRY org.eclipse.osgi 4 0 2013-10-10 01:05:17.555
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
        at org.eclipse.swt.SWT.error(SWT.java:4387)
        at org.eclipse.swt.widgets.Display.createDisplay(Display.java:914)
        at org.eclipse.swt.widgets.Display.create(Display.java:900)
        at org.eclipse.swt.graphics.Device.<init>(Device.java:156)
        at org.eclipse.swt.widgets.Display.<init>(Display.java:498)
        at org.eclipse.swt.widgets.Display.<init>(Display.java:489)
        at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:716)
        at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
        at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:154)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:96)
        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:353)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
        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:606)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1414)

क्या किसी को पता है कि क्या गलत हुआ है? या इस मुद्दे को ठीक करने के लिए मुझे क्या करना चाहिए? धन्यवाद..

अद्यतन करें:-

नीचे दिए गए संस्करण विवरण -

ubuntu@username-dyn-vm1-48493:~$ dpkg -l libgtk[0-9]* | grep ^i
ii  libgtk2.0-0:amd64                   2.24.17-0ubuntu2                    amd64        GTK+ graphical user interface library
ii  libgtk2.0-bin                       2.24.17-0ubuntu2                    amd64        programs for the GTK+ graphical user interface library
ii  libgtk2.0-common                    2.24.17-0ubuntu2                    all          common files for the GTK+ graphical user interface library

अजीब तरह से पर्याप्त मुझे एक समस्या थी dbeaver चलाने की कोशिश कर रहा है। ठीक से काम करने के लिए मुझे पहले tmux से बाहर निकलना पड़ा। अजीब
matchew

जवाबों:


4

मुझे लगता है कि यह gtk के साथ एक समस्या है। क्या संस्करण स्थापित है की जाँच करें।

dpkg -l libgtk[0-9]* | grep ^i

यदि यह स्थापित नहीं है या गलत संस्करण है तो a sudo apt-get install gtkया do a करें sudo apt-get update

संपादित करें

समस्या यह थी कि SSH SSH का उपयोग लिनक्स VM में रिमोट के लिए कर रहा था और Windows पर X-Server की स्थापना नहीं की थी और X11 अग्रेषण सक्षम नहीं था। ओपी को सीधा करने के बाद ग्रहण को चलाने में कोई समस्या नहीं होनी चाहिए।


मैंने वास्तविक संस्करण जानकारी के साथ अपना प्रश्न अपडेट किया है .. मुझे बताएं कि क्या अभी भी मुझे अपडेट करने की आवश्यकता है?
एसएसएच

वैसे वहाँ से बाहर के लिए एक संस्करण 3.8 है वहाँ नवीनतम संस्करण को अद्यतन करने के लिए चोट नहीं पहुंचा सकता है।
19

3
मैं देख रहा हूँ .. लेकिन जब मैंने उसे अद्यतन इस मैं क्या मिल गया है - sudo apt-get install gtk Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package gtk । यह किसी भी तरह पैकेज gtk का पता लगाने में सक्षम नहीं है .. कोई विचार?
एसएसएच

जब आप एक करते हैं तो आपको क्या मिलता है sudo apt-cache search gtk?
ज्येष्ठ

इसने बहुत सारी चीजें कीं .. और मेरी स्क्रीन पर चीजों का पूरा गुच्छा बाहर निकल गया .. यकीन नहीं कि आपकी रुचि क्या हो सकती है?
एसएसएच

10

यदि आप एक्स एक्सेस को अग्रेषित किए बिना ssh पर ग्रहण शुरू करने का प्रयास करते हैं, तो यह आपको मिलने वाली त्रुटि भी है। यानी, आप चलाना ssh -X user@hostभूल गए या सर्वर के लिए ForwardX11 yesअपनी ~/.ssh/configप्रविष्टि में शामिल करना भूल गए ।

मैं इस उत्तर को किसी ऐसे व्यक्ति के लिए जोड़ रहा हूं जो तकनीकी रूप से भले ही Google खोज से ओपी एक वीएम केस के बारे में पूछ रहा हो।


@isakbob धन्यवाद, इससे मेरी समस्या हल हो गई। कहीं और जवाब नहीं मिला। उत्तर के रूप में पोस्ट करना चाह सकते हैं।
मैथ्यू

@ मैथ्यू मुझे नहीं लगता कि मेरी टिप्पणी एक और जवाब देती है। मैंने सिर्फ अपनी टिप्पणी को शामिल करने के लिए इस उत्तर को संपादित किया।
isakbob

6

इसके अलावा, यह एप्लिकेशन को रिमोट को प्रदर्शित करने के लिए सही प्राधिकरण नहीं होने के कारण भी हो सकता है X server। यह आमतौर पर तब होता है जब आप ssh सत्र में एक उपयोगकर्ता के रूप में लॉग इन करते हैं और एक GUI एप्लिकेशन की सराहना करने के लिए किसी अन्य उपयोगकर्ता के रूप में एक कमांड निष्पादित करते हैं। उदाहरण के लिए जब आप रिमोट सर्वर में लॉग इन करते हैं और एक sudoकमांड निष्पादित करते हैं । इस समस्या को हल करने के लिए, आपको उपयोगकर्ता लॉगिंग की मैजिक कुकी प्राप्त करनी होगी और कमांड चलाने वाले उपयोगकर्ता के लिए कुकी आयात करना होगा।

उपयोगकर्ता के रूप में उस सर्वर में लॉग इन करना जिसके पास प्रदर्शन करने X, चलाने का अधिकार है :

xauth extract cookie_file $DISPLAY

फिर जैसा कि उपयोगकर्ता gui चलाने का प्रयास कर रहा है: xauthमर्ज करेंcookie_file

एक बार कुकी को उपयोगकर्ता में आयात किया जाता है। Xauthorityफ़ाइल, आपको GUI निष्पादित करने में सक्षम होना चाहिए।


यह भी संभव है, कि मेजबान सिर्फ डो का प्रदर्शन बिल्कुल न हो। इस स्थिति में आप Xvfb को स्थापित कर सकते हैं, और कमांड के साथ वर्चुअल फ्रेम बफर बना सकते हैं: Xvfb :1 -ac -screen 0 1024x768x8 & export DISPLAY=:1 स्रोत
Staszek

3

मैं CentOS 6.x पर IBM स्थापना प्रबंधक (IBMIM) स्थापित करते समय एक समान समस्या में भाग गया और कई संकुल को स्थापित करके इस मुद्दे पर काम किया जो इस समान त्रुटि का कारण था:

$ sudo /opt/IBM/InstallationManager/eclipse/IBMIM \
       -record /root/was8nd_v85_install.xml \
       -skipInstall /tmp/was8nd

00:00.46 ERROR [main] org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory safeLogged
  Application error
  org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
  org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
    at org.eclipse.swt.SWT.error(SWT.java:4387)
    at org.eclipse.swt.widgets.Display.createDisplay(Display.java:913)
    at org.eclipse.swt.widgets.Display.create(Display.java:899)
    at org.eclipse.swt.graphics.Device.<init>(Device.java:156)
    ...
IBMIM:
An error has occurred. See the log file
/opt/IBM/InstallationManager/eclipse/configuration/1457978953529.log.

समाधान भाग 1 - लापता पैकेज

$ sudo yum install \
   gtk2            \
   libXtst         \
   gnome-desktop   \
   xorg-x11-xauth  \
   dejavu-lgc-sans-fonts 

ऐसा ही कुछ उबंटू पर भी किया जा सकता था।

समाधान भाग 2 - xauth

अन्य समस्या जो उत्पन्न होगी वह यह है कि आप IBMIM इंस्टॉलर (ग्रहण आधारित) को मूल उपयोगकर्ता के रूप में sudo के माध्यम से चलाने का प्रयास कर रहे हैं। जब आप ऐसा करेंगे तो आपको इंस्टॉलर से उपरोक्त एप्लिकेशन त्रुटि मिलेगी:

00:00.46 ERROR [main] org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory safeLogged
  Application error
  org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
  org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]

इसके आस-पास काम xauth addकरने के लिए आपको रूट के $HOME/.Xauthorityफ़ाइल के रूप में आपके द्वारा लॉग किए गए प्रारंभिक उपयोगकर्ता को जोड़ने के लिए उपयोग करना होगा ।

उपयोगकर्ता 1 के रूप में:

$ xauth list
ip-10-10-10-10.us-west-1.compute.internal/unix:10  MIT-MAGIC-COOKIE-1  6902e8c245a01ca50XXXXXXXXXXXXXXXX

फिर जड़ के रूप में:

$ xauth add ip-10-10-10-10.us-west-1.compute.internal/unix:10  MIT-MAGIC-COOKIE-1  6902e8c245a01ca50XXXXXXXXXXXXXXXX
xauth:  creating new authority file /root/.Xauthority

$ xauth list
ip-10-10-10-10.us-west-1.compute.internal/unix:10  MIT-MAGIC-COOKIE-1  6902e8c245a01ca50XXXXXXXXXXXXXXXX

संदर्भ


0

यदि आप सूक्ति के साथ एक लाइन पर चल रहे हैं:

एक Xorg सत्र के साथ एक सूक्ति शुरू करें:

GDM (अभिवादन / लॉगिन प्रबंधक) में अपना उपयोगकर्ता नाम क्लिक करने के बाद, अपना उपयोगकर्ता नाम क्लिक करें और पासवर्ड दर्ज करने से पहले, छोटे गियर पर क्लिक करें और Xorg के साथ Gnome चुनें, फिर अपना पासवर्ड दर्ज करें


-1

दूरस्थ मशीन पर IPV6 को अक्षम करने के बाद मुझे org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]कमांड का उपयोग करते समय संदेश प्राप्त हुआ ssh -X ub-dev /opt/eclipse/eclipse। उबंटू 14.04 पर फिक्स करने के लिए मैंने ssh AddressFamily inetको फाइल /etc/ssh/sshd_configऔर रीस्टार्ट करने के लिए लाइन जोड़ी sudo service ssh restart

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