org.eclipse.swt.SWTError: ubuntu'da eclipse çalışırken [gtk_init_check () başarısız değil]


24

Aşağıdaki komutla ubuntu VM'mde tutulma açmaya çalışıyordum .. Ve bunu yapar yapmaz, her zaman aşağıdaki istisna olsun

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.

o zaman belirli bir günlük dosyasına gittiğimde, günlükte görebildiğim budur -

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)

Ne olduğunu bilen var mı? Veya bu sorunu çözmek için ne yapmam gerekiyor? Teşekkürler..

Güncelleştirme:-

Aşağıdaki sürüm detayları -

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

yeterince garip bir şekilde dbeaver'ı çalıştırmaya çalışırken benzer bir sorunum vardı. Düzgün çalışması için önce tmux'dan çıkmak zorunda kaldım. Tek
matchew

Yanıtlar:


4

Bunun gtk ile ilgili bir sorun olduğunu düşünüyorum. Hangi sürümün kurulu olduğunu kontrol edin.

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

Yüklü değilse veya yanlış sürümse a sudo apt-get install gtkveya yapın sudo apt-get update.

DÜZENLE

Sorun SSH'nin SSH'yi bir Linux VM'ye uzaktan kumanda etmek için kullanıyor olması ve Windows'ta kurulmuş bir X Sunucusunun olmaması ve X11 iletme özelliğinin etkin olmamasıydı. Bunu düzelttikten sonra, OP Eclipse'i çalıştıran hiçbir sorun olmamalıdır.


Sorumu gerçek sürüm bilgisi ile güncelledim .. Hala güncelleme yapmam gerekip gerekmediğini bana bildirin.
SSH

Peki orada gtk için 3.8 sürümü var, bu yüzden en son sürüme güncellemek için zarar veremedi.
Jeight

3
Anladım .. Ama güncellediğimde elde ettiğim budur - sudo apt-get install gtk Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package gtk . Bir şekilde gtk paketini bulamıyor. Bir fikrin var mı?
SSH

Ne zaman bir aldın sudo apt-cache search gtk?
Jeight

Çok şey yaptı .. Ve ekranımda bir sürü şey basıldı .. Neye ilgi duyacağınızdan emin değil misiniz?
SSH

10

Bu aynı zamanda, Eclipse'i ssh üzerinden X erişimini iletmeden başlatmaya çalışırsanız aldığınız hatadır. Yani, çalıştırmak unuttum ssh -X user@hostya eklemeyi unutursam ForwardX11 yessizin de ~/.ssh/configsunucu için girişi.

Bu cevabı teknik olarak da olsa, bir Google aramasından bu soruya rastlayabilecek herhangi biri için ekliyorum.


@ isakbob Teşekkürler, bu sorunumu çözdü. Cevap başka hiçbir yerde bulunamadı. Bir cevap olarak göndermek isteyebilirsiniz.
Matthew

@Matthew Yorumumun başka bir cevap gerektirdiğini sanmıyorum. Bu cevabı az önce yorumumu içerecek şekilde düzenledim.
isakbob

6

Ek olarak, bu durum uygulamanın uzaktan kumandaya doğru görüntüleme yetkisine sahip olmamasından da kaynaklanabilir X server. Bu, genellikle bir kullanıcı olarak ssh oturumuna giriş yaptığınızda ve bir GUI uygulamasını kullanmak için başka bir kullanıcı olarak bir komut çalıştırdığınızda gerçekleşir. Örneğin, uzak sunucuya giriş yaptığınızda ve bir sudokomut çalıştırdığınızda . Bu sorunu çözmek için, giriş yapan kullanıcının sihirli çerezini edinmeniz ve komutu çalıştıran kullanıcının çerezini almanız gerekir.

Kullanıcı görüntüleme yetkisi olan sunucuya giriş yaparken X, şunu çalıştırın:

xauth extract cookie_file $DISPLAY

Sonra kullanıcı GUI'yi çalıştırmaya çalışırken: xauthbirleştirmecookie_file

Tanımlama bilgisi kullanıcının içine aktarıldıktan sonra. XauthorityGUI dosyasını çalıştırabilmeniz gerekir.


Aynı zamanda mümkün, o ana bilgisayarın hiç ekranı yok. Bu durumda Xvfb'yi yükleyebilir ve şu komutları içeren sanal çerçeve arabelleği oluşturabilirsiniz: Xvfb :1 -ac -screen 0 1024x768x8 & export DISPLAY=:1 kaynak
Staszek

3

CentOS 6.x üzerine IBM Installation Manager'ı (IBMIM) kurarken de benzer bir sorunla karşılaştım ve bu aynı hatanın nedeni olan birkaç paket yükleyerek bu sorunu çözdüm:

$ 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.

Çözüm bölüm 1 - eksik paketler

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

Buna benzer bir şey Ubuntu'da da yapılabilirdi.

Çözüm bölüm 2 - xauth

Ortaya çıkacak diğer sorun, IBMIM yükleyicisini (Eclipse tabanlı) sudo aracılığıyla kök kullanıcı olarak çalıştırmaya çalışıyor olmanızdır. Bunu yaptığınızda, yükleyiciden yukarıdaki Uygulama hatasını alırsınız:

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]

Bu soruna geçici bir çözüm xauth addbulmak için, oturum açtığınız ilk kullanıcıyı kök $HOME/.Xauthoritydosya olarak eklemek için kullanmanız gerekir .

Kullanıcı olarak 1:

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

Sonra kök olarak:

$ 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

Referanslar


0

Gnome ile bir linux üzerinde koşuyorsanız:

Bir Xorg oturumu ile bir Gnome başlatın:

GDM'de kullanıcı adınızı tıkladıktan sonra (karşılama / giriş yöneticisi), kullanıcı adınızı tıklayın ve şifreyi girmeden önce, küçük donanımı tıklayın ve Xorg'lu Gnome'u seçin, ardından şifrenizi girin


-1

Uzak makinede IPV6'yı devre dışı bıraktıktan sonra, org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]komutu kullanırken mesajı aldım ssh -X ub-dev /opt/eclipse/eclipse. Ubuntu 14.04'te düzeltmek AddressFamily inetiçin dosyaya satır ekledim /etc/ssh/sshd_configve ssh'yi yeniden başlattım sudo service ssh restart.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.