How do I create a .desktop file to launch eclipse?
I had the same problem.
The next eclipse.desktop file works 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
I didn't modify the eclipse.ini
Another solution is to modify the eclipse.ini file without modify your eclipse.desktop
My 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
The -vm option and its value (the path) must be on separate lines.
More info: Wiki eclipse.ini
The output does say that it searched in the PATH too:
No Java virtual machine was found after searching the following locations:
...
java in your current PATH
You said you can launch eclipse
from a terminal: In this case I would say that your java
is installed to a non-standard directory, which is added to your PATH by a terminal startup script (bashrc, zshrc, etc.) but it is not added to your session when you login. So when you are in a terminal session your PATH is different from the one which is used when the .desktop file is invoked.
To troubleshoot this case:
- To see where
java
is installed:which java
- Check your
~/.profile
if the correct PATH with thejava
directory is set in it. If the correct path is only set in.bashrc
,.zshrc
, etc. then it is possible that those scripts are not invoked on login, so the PATH is not set correctly. Also if you have~/.bash_profile
or~/.bash_login
you have to check those too. If you provide these files we can look into this whether this is your problem.
If you can't solve it this way, you can always modify the PATH directly in the .desktop file with env PATH= ...
I've copied the following block from within the if [ -n "$BASH_VERSION" ]; then
statement:
if [ -f "$HOME/.bashrc_" ]; then
. "$HOME/.bashrc"
fi
I've also tried without the if statement:
. "$HOME/.bashrc"
but Eclipse fails with the same error message in both cases. Apparently HOME
isn't set when lightdm runs ~/.profile
.
Explicitly setting the path in ~/.profile
works, but I want to keep my PATH and my other Bash features (aliases, functions) in the same file.
The solution is to set the PATH
on the Exec=env PATH=$PATH:...
line in eclipse.desktop. Nothing I've tried works to start IntelliJ from a desktop icon, however.
Given that you are reinventing the Linux GUI experience with Unity maybe it's time to leave the error prone series of scripts behind and use something that is less error prone and easier to use. The scripts would still have to be there for bash shells, but the Unity desktop could be independent of them.