
Wenn ich eine .desktop-Datei zum Starten von Eclipse erstelle (neuester Build mit JDK 1.8-Unterstützung), erhalte ich die folgende Fehlermeldung:
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 versucht es, die JRE in dem Verzeichnis zu finden, in dem sich die Eclipse-Binärdatei befindet?
Ich kann Eclipse über die Befehlszeile starten, 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 gefragt wurde indie oben verlinkte Frage als Duplikat. Mein Problem ist, dass mein Pfad zum JDK in meiner .bashrc festgelegt ist.
Antwort1
Ich hatte das gleiche Problem.
Die nächste Datei eclipse.desktop 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 nicht geändert dieeclipse.ini
Eine andere Lösung besteht in der Änderung dereclipse.iniDatei, ohne 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 getrennten Zeilen stehen.
Mehr Info:Wiki eclipse.ini
Antwort2
Die Ausgabe besagt, dass auch im PATH gesucht wurde:
No Java virtual machine was found after searching the following locations:
...
java in your current PATH
Sie sagten, Sie können eclipse
von einem Terminal aus starten: In diesem Fall würde ich sagen, dass Ihr Programm java
in einem nicht standardmäßigen Verzeichnis installiert ist, das Ihrem PATH durch ein Terminal-Startskript (bashrc, zshrc usw.) hinzugefügt wird, aber nicht Ihrer Sitzung hinzugefügt wird, wenn Sie sich anmelden. Wenn Sie sich also in einer Terminalsitzung befinden, ist Ihr PATH ein anderer als der, der verwendet wird, wenn die .desktop-Datei aufgerufen wird.
So beheben Sie das Problem in diesem Fall:
- So sehen Sie, wo
java
es installiert ist:which java
- Überprüfen Sie
~/.profile
, ob der richtige Pfad mit demjava
Verzeichnis darin festgelegt ist. Wenn der richtige Pfad nur in.bashrc
,.zshrc
, usw. festgelegt ist, ist es möglich, dass diese Skripte beim Anmelden nicht aufgerufen werden und der Pfad daher nicht richtig festgelegt ist. Wenn Sie diese Dateien haben~/.bash_profile
oder~/.bash_login
haben müssen, überprüfen Sie diese ebenfalls. Wenn Sie diese Dateien bereitstellen, können wir prüfen, ob dies Ihr Problem ist.
Wenn Sie das Problem auf diese Weise nicht lösen können, können Sie den Pfad immer direkt in der .desktop-Datei ändern mitenv PATH= ...
Antwort3
Ich habe den folgenden Block aus der if [ -n "$BASH_VERSION" ]; then
Anweisung kopiert:
if [ -f "$HOME/.bashrc_" ]; then
. "$HOME/.bashrc"
fi
Ich habe es auch ohne die if-Anweisung versucht:
. "$HOME/.bashrc"
aber Eclipse schlägt in beiden Fällen mit derselben Fehlermeldung fehl. HOME
Ist anscheinend nicht gesetzt, wenn lightdm ausgeführt wird ~/.profile
.
Das explizite Festlegen des Pfads ~/.profile
funktioniert, aber ich möchte meinen PATH und meine anderen Bash-Funktionen (Aliase, Funktionen) in derselben Datei behalten.
PATH
Die Lösung besteht darin , die Zeile in eclipse.desktop festzulegen Exec=env PATH=$PATH:...
. Nichts von dem, was ich versucht habe, IntelliJ über ein Desktopsymbol zu starten, funktioniert jedoch.
Da Sie mit Unity das Linux-GUI-Erlebnis neu erfinden, ist es vielleicht an der Zeit, die fehleranfällige Skriptreihe hinter sich zu lassen und etwas zu verwenden, das weniger fehleranfällig und einfacher zu verwenden ist. Die Skripte müssten für Bash-Shells weiterhin vorhanden sein, aber der Unity-Desktop könnte davon unabhängig sein.
Antwort4
Ich habe eine sehr einfache Methode.
Öffnen Sie Gedit oder den Texteditor. Fügen Sie hinzu:
[Desktop Entry]
Exec=/home/testrule/eclipse/eclipse
Icon=/home/testrule/eclipse/icon.xpm
Type=Application
Auf dem Desktop speichern als eclipse.desktop
.
Klicken Sie mit der rechten Maustaste auf die eclipse.desktop
Datei > klicken Sie auf Eigenschaften > klicken Sie auf die Registerkarte Berechtigungen >> Klicken Sie aufKontrollkästchenvon Ausführen