Eclipse mit einem Linux-Benutzer öffnen, der keine grafische Umgebung hat (von der Konsole erstellt)

3772
chomp

Ich habe einen Benutzer von der Konsole in meinem Ubuntu Destkop 14.04 LTS erstellt, und zwar folgendermaßen:

sudo addgroup hadoop sudo adduser --ingroup hadoop hduser 

Ich habe diesen Benutzer für alle Arten von Sachen verwendet, weil ich es für einige Programmier-Sachen benutze, die mit hadoop in Verbindung stehen. Ich weiß, dass es gut funktioniert, immer von der Konsole aus verwendet und Sachen ohne GUI ausführt . Und ich möchte mit diesem Benutzer eine Eclipse (Luna) öffnen, also mache ich Folgendes:

su hduser cd /opt/eclipse ./eclipse 

Aber es wirft einen Fehler:

!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) 

Wenn ich jedoch die Eclipse von der Konsole aus mit meinem "Hauptbenutzer" (derselbe, mit dem ich mich bei meinem Ubuntu Destkop angemeldet habe) öffne, öffnet sich die Eclipse perfekt.

Deshalb vermute ich, dass der Unterschied zwischen beiden Benutzern dies nicht zulässt, und ich vermute, dass hduser nicht die richtigen Konfigurationen für die Verwendung in einer grafischen Umgebung besitzt. Ich bin recht Kann hduser so modifiziert werden, dass ich Eclipse öffnen kann?

2
Ich habe hduser [für die korrekte Anmeldung bei ubuntu] (http://askubuntu.com/questions/628146/user-created-fromcommand-line-cant-login-successful) aktualisiert. Ich hoffe, dass dies möglich ist hilfreich für die Lösung des Problems dieses Benutzers bei der Ausführung von Eclipse, aber es hat nicht funktioniert. Ich habe auch alle Dateien mit den gleichen Berechtigungen gesetzt: chmod -R 777 / opt / eclipse / * `. Das Problem bleibt bestehen. chomp vor 8 Jahren 0

2 Antworten auf die Frage

2
Professor Blargin

Versuchen Sie, diesen Befehl auszuführen:

export DISPLAY=:0 

Es stellt sicher, dass es weiß, welche X-Anzeige verwendet werden muss, bevor Eclipse ausgeführt wird.

Wenn dies nicht funktioniert, muss dieser Benutzer möglicherweise auch Konfigurationsdateien für einen Fenstermanager haben. Führen Sie einfach die GUI-Route aus, um einen neuen Benutzer hinzuzufügen (ich glaube, es befindet sich unter Einstellungen → Benutzer und Gruppen ), sodass alle Standardkonfigurationen geladen werden.

Hi @ Professor-Blargin, danke für deine Antwort. Ich habe `export DISPLAY =: 0` versucht, aber der gleiche Fehler bleibt bestehen (** org.eclipse.swt.SWTError: Keine weiteren Handles [gtk_init_check () failed) **). Ich konnte auch keinen neuen Benutzer aus "Benutzer und Gruppen" hinzufügen, da er dort bereits vorhanden ist. Irgendeine andere Idee? chomp vor 8 Jahren 0
1
slm

Bei der Installation von IBM Installation Manager (IBMIM) unter CentOS 6.x bin ich auf ein ähnliches Problem gestoßen und habe dieses Problem durch die Installation mehrerer Pakete behoben, die die Ursache dieses identischen Fehlers waren:

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

Lösungsteil 1 - fehlende Pakete

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

Ähnliches hätte man auch auf Ubuntu machen können.

Lösungsteil 2 - xauth

Das andere Problem ist, dass Sie versuchen, das IBMIM-Installationsprogramm (Eclipse-basiert) als Rootbenutzer über sudo auszuführen. Wenn Sie dies tun, erhalten Sie den obigen Anwendungsfehler vom Installationsprogramm:

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] 

Um dies zu umgehen, müssen xauth addSie den ursprünglich angemeldeten Benutzer als Root- $HOME/.XauthorityDatei hinzufügen .

Als Benutzer1:

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

Dann als 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 

Verweise

Ich habe es versucht, aber ich erhalte: xauth: file /home/xxxx/.Xauthority existiert nicht warhansen vor 5 Jahren 0