質問: グラフィカル環境(コンソールから作成)を持たないlinuxユーザーでeclipseを開きます ubuntu destkop 14.04 ltsのコンソールからユーザーを作成し、次のようにしました。sudo addgroup hadoop sudo adduser --ingroup hadoop hduser 私はそのユーザーをあらゆる種類の作業に使用しました。これは、hadoopに関連するプログラミング作業に使用しているため、正常に機能することを知っています。常にコンソールから使用し、 gui。そして、私はこのユーザーでeclipse(luna)を開きたいので、これを行います:su hduser cd /opt/eclipse ./eclipse しかし、それは私にエラーを投げます:!message application error !stack 1 org.eclipse.swt.swterror: no more handles [gtk_init_check() failed] at org.eclipse.swt.swt.error(swt.java:4467) at org.eclipse.swt.widgets.display.createdisplay(display.java:934) at org.eclipse.swt.widgets.display.create(display.java:918) at org.eclipse.swt.graphics.device.<init>(device.java:157) at org.eclipse.swt.widgets.display.<init>(display.java:514) at org.eclipse.swt.widgets.display.<init>(display.java:505) at org.eclipse.ui.internal.workbench.createdisplay(workbench.java:732) at org.eclipse.ui.platformui.createdisplay(platformui.java:162) at org.eclipse.ui.internal.ide.application.ideapplication.createdisplay$ at org.eclipse.ui.internal.ide.application.ideapplication.start(ideappl$ at org.eclipse.equinox.internal.app.eclipseapphandle.run(eclipseapphand$ at org.eclipse.core.runtime.internal.adaptor.eclipseapplauncher.runappl$ at org.eclipse.core.runtime.internal.adaptor.eclipseapplauncher.start(e$ at org.eclipse.core.runtime.adaptor.eclipsestarter.run(eclipsestarter.j$ at org.eclipse.core.runtime.adaptor.eclipsestarter.run(eclipsestarter.j$ at sun.reflect.nativemethodaccessorimpl.invoke0(native method) at sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl$ at sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodacce$ at java.lang.reflect.method.invoke(method.java:606) at org.eclipse.equinox.launcher.main.invokeframework(main.java:648) at org.eclipse.equinox.launcher.main.basicrun(main.java:603) at org.eclipse.equinox.launcher.main.run(main.java:1465) at org.eclipse.equinox.launcher.main.main(main.java:1438) しかし、「メインユーザー」(ubuntu destkopへのログインに使用したものと同じ)を使用してコンソールからeclipseを開くと、eclipseは完全に正常に開きます。そのため、両方のユーザーの間に存在する違いではこれができないと思われます。問題は、hduserがグラフィカル環境で使用するための適切な構成を持っていないことだと思います。私は正しいですか? eclipseを開くことができるようにhduserを変更できますか?
回答: centos6.xにibminstallation manager(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 これに似たことがubuntuでも実行できたはずです。ソリューションパート2-xauth発生するもう1つの問題は、ibmimインストーラー(eclipseベース)をsudo経由でrootユーザーとして実行しようとしていることです。これを行うと、インストーラーから上記のアプリケーションエラーが発生します。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を使用して、ログインした最初のユーザーをrootの$home/.xauthorityファイルに追加する必要があります。user1として:$ xauth list ip-10-10-10-10.us-west-1.compute.internal/unix:10 mit-magic-cookie-1 6902e8c245a01ca50xxxxxxxxxxxxxxxx 次にrootとして:$ 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 参考文献 https://www.centos.org/forums/viewtopic.php?t=1372