Wie erstelle ich eine .desktop-Datei, um Eclipse zu starten?

11

Wenn ich eine .desktop-Datei zum Starten von Eclipse erstelle (neueste Version mit JDK 1.8-Unterstützung), wird die folgende Fehlermeldung angezeigt:

A Java Runtime Environment (JRE) or Java Development Kit (JDK)
must be available in order to run Eclipse. No Java virtual machine
was found after searching the following locations:
/home/dean/bin/eclipse-standard-luna-M5-linux-gtk-x86_64/eclipse/jre/bin/java
java in your current PATH

Warum wird versucht, die JRE unter dem Verzeichnis zu finden, in dem sich die Eclipse-Binärdatei befindet?

Ich kann Eclipse über die Befehlszeile starten und es an den Launcher anheften, und es funktioniert. Warum ist die .desktop-Datei so verwirrt darüber, was sie tun soll?

Hier ist meine .desktop-Datei:

[Desktop Entry]
Version=1.0
Name=Eclipse JDK 1.8
Comment=Eclipse
Exec=/home/dean/bin/eclipse-standard-luna-M5-linux-gtk-x86_64/eclipse/eclipse
Icon=/home/dean/bin/eclipse-standard-luna-M5-linux-gtk-x86_64/eclipse/icon.xpm
Terminal=false
Type=Application
Categories=Utility;Application;

Das Problem, das ich habe, ist nicht das, was in der oben verlinkten Frage als Duplikat gestellt wurde . Mein Problem ist, dass mein Pfad zum JDK in meiner .bashrc festgelegt ist.

Dean Schulze
quelle
Der einzige Unterschied zwischen meinem eclipse.desktop und dem in dieser Frage besteht darin, dass er beim Starten von eclipse einige Argumente hinzufügt. Wenn ich dieselben Argumente hinzufüge, wird dieselbe Fehlermeldung angezeigt. Unity .desktop-Dateien können Eclipse anscheinend nicht starten.
Dean Schulze

Antworten:

9

Ich hatte das gleiche Problem.

Die nächste eclipse.desktop-Datei funktioniert in Ubuntu 14.06 x64.

[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse IDE
Exec=/home/ivan/Eclipse/eclipse -vm /home/ivan/java/jdk1.7.0_25/bin/java
Icon=/home/ivan/Eclipse/icon.xpm
Categories=Application;Development;Java;IDE
Type=Application
Terminal=0

Ich habe die eclipse.ini nicht geändert

Eine andere Lösung ist es, die zu modifizieren eclipse.ini Datei ohne modify Ihre eclipse.desktop

Meine eclipse.ini:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212
-product
org.eclipse.epp.package.standard.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
/home/ivan/java/jdk1.7.0_25/bin/java
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms40m
-Xmx512m

Die Option -vm und ihr Wert (der Pfad) müssen in separaten Zeilen stehen.

Weitere Infos: Wiki eclipse.ini

iv4z
quelle
Warum braucht es den vollständigen Pfad zur icon.xpm?
Nicky De Maeyer
1
Wo platziere ich die Datei eclipse.desktop?
Jonathan
1

Die Ausgabe sagt, dass sie auch im PFAD gesucht hat:

No Java virtual machine was found after searching the following locations:
...
java in your current PATH

Sie sagten, Sie können eclipsevon einem Terminal aus starten : In diesem Fall würde ich sagen, dass Ihr javaVerzeichnis in einem nicht standardmäßigen Verzeichnis installiert ist, das Ihrem PATH durch ein Terminal-Startskript (bashrc, zshrc usw.) hinzugefügt wird, aber nicht hinzugefügt wird zu Ihrer Sitzung, wenn Sie sich anmelden. Wenn Sie sich also in einer Terminalsitzung befinden, unterscheidet sich Ihr PATH von dem, der beim Aufrufen der .desktop-Datei verwendet wird.

So beheben Sie diesen Fall:

  • So sehen Sie, wo javainstalliert ist:which java
  • Überprüfen Sie, ~/.profileob der richtige Pfad mit dem javaVerzeichnis darin festgelegt ist. Wenn der richtige Pfad nur in festgelegt ist .bashrc, .zshrcusw. , dann ist es möglich , dass dieser Skripte nicht auf Login aufgerufen wird , so wird der Pfad nicht richtig eingestellt. Auch wenn Sie diese haben ~/.bash_profileoder ~/.bash_loginauch überprüfen müssen. Wenn Sie diese Dateien bereitstellen, können wir prüfen, ob dies Ihr Problem ist.

Wenn Sie es auf diese Weise nicht lösen können, können Sie den PATH jederzeit direkt in der .desktop-Datei mit ändern env PATH= ...

Falkner
quelle
Das ist dann genau mein Problem. Ich habe den Pfad auf das JDK in .bashrc gesetzt. Wenn Sie in den Dokumenten nach einer .desktop-Datei suchen, scheint der PATH-Eintrag etwas anderes zu tun. Gibt es eine Möglichkeit, den Systempfad in .desktop festzulegen?
Dean Schulze
Nach einigem googeln stellte ich fest, dass die Lösung darin besteht, die Exec-Zeile folgendermaßen zu ändern: Exec=env PATH=/home/dean/bin/jdk1.8.0/bin:$PATH /home/dean/bin/eclipse-standard-luna-M5-linux-gtk-x86_64/eclipse/eclipse Die Dokumente für die .desktop-Datei waren keine Hilfe.
Dean Schulze
Die gleiche Änderung an der Zeile Exec = ... funktioniert jedoch nicht für den Start von IntelliJ über die Datei idea.sh.
Dean Schulze
@ DeanSchulze Ja, Exec=env PATH= ...das habe ich in meiner letzten Zeile gemeint. Normalerweise möchten Sie PATH in .profile einrichten, nicht in .bashrc. Die .profile-Datei wird von der Anmeldeshell analysiert, sodass PATH beim Anmelden korrekt eingerichtet wird. Die Problemumgehung ist dann nicht erforderlich env. Auf Debian / Ubuntu .profile-Quellen .bashrc sollte dies also kein Problem sein, aber möglicherweise tut es Ihr .profile nicht, also überprüfen Sie es. Oder Sie haben eine .bash_profile- oder .bash_login-Datei, die die .profile-Einstellungen überschreibt.
Falkner
@DeanSchulze Um es zusammenzufassen, setzen Sie Ihren PATH in .profile (oder .bash_profile oder .bash_login, wenn Sie eine dieser Dateien haben), nicht in .bashrc, oder stellen Sie sicher, dass .bashrc von den oben genannten Dateien stammt. Wenn Sie es auf diese Weise einrichten, sollte Ihr PATH auch für die .desktop-Dateien korrekt sein, und es besteht keine Notwendigkeit für "Tricks".
Falkner
1

Ich habe den folgenden Block aus der if [ -n "$BASH_VERSION" ]; thenAnweisung kopiert :

if [ -f "$HOME/.bashrc_" ]; then
    . "$HOME/.bashrc"
fi

Ich habe es auch ohne die if-Anweisung versucht:

. "$HOME/.bashrc"

Eclipse schlägt jedoch in beiden Fällen mit derselben Fehlermeldung fehl. Anscheinend HOMEist nicht eingestellt, wenn lightdm läuft ~/.profile.

Das explizite Festlegen des Pfads in ~/.profileWorks, aber ich möchte meinen PATH und meine anderen Bash-Funktionen (Aliase, Funktionen) in derselben Datei behalten.

Die Lösung besteht darin, PATHdie Exec=env PATH=$PATH:...Zeile in eclipse.desktop festzulegen. Nichts, was ich versucht habe, funktioniert jedoch, um IntelliJ über ein Desktop-Symbol zu starten.

Angesichts der Tatsache, dass Sie die Linux-GUI-Erfahrung mit Unity neu erfinden, ist es möglicherweise an der Zeit, die fehleranfällige Reihe von Skripten hinter sich zu lassen und etwas zu verwenden, das weniger fehleranfällig und einfacher zu verwenden ist. Die Skripte müssten immer noch für Bash-Shells vorhanden sein, aber der Unity-Desktop könnte unabhängig von ihnen sein.

Dean Schulze
quelle
1

Ich habe eine sehr einfache Methode.

Öffnen Sie Gedit oder Texteditor. Hinzufügen:

[Desktop Entry]
Exec=/home/testrule/eclipse/eclipse
Icon=/home/testrule/eclipse/icon.xpm
Type=Application

Auf dem Desktop speichern unter eclipse.desktop.

Klicken Sie mit der rechten Maustaste auf die eclipse.desktopDatei> klicken Sie auf Eigenschaften> klicken Sie auf die Registerkarte Berechtigungen >> Klicken Sie auf das Kontrollkästchen Ausführen

Testregel
quelle