¿Cómo creo un archivo .desktop para iniciar eclipse?

12

Cuando creo un archivo .desktop para iniciar eclipse (última compilación con soporte JDK 1.8) aparece el siguiente error:

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

¿Por qué intenta encontrar el JRE en el directorio donde está el binario eclipse?

Puedo iniciar Eclipse desde la línea de comandos, y puedo anclarlo al iniciador y funciona. ¿Por qué el archivo .desktop está tan confundido acerca de lo que se supone que debe hacer?

Aquí está mi archivo .desktop:

[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;

El problema que tengo no es lo que se hizo en la pregunta vinculada anteriormente como un duplicado . Mi problema es porque mi RUTA al JDK está configurada en mi .bashrc.

Dean Schulze
fuente
La única diferencia entre mi eclipse.desktop y el de esa pregunta es que agrega algunos argumentos al iniciar eclipse. Cuando agrego esos mismos argumentos me sale el mismo mensaje de error. Los archivos .desktop de Unity aparentemente no pueden iniciar Eclipse.
Dean Schulze

Respuestas:

9

Yo tuve el mismo problema.

El siguiente archivo eclipse.desktop funciona en 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

No modifiqué el eclipse.ini

Otra solución es modificar el archivo eclipse.ini sin modificar su eclipse.desktop

Mi 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

La opción -vm y su valor (la ruta) deben estar en líneas separadas.

Más información: Wiki eclipse.ini

iv4z
fuente
¿Por qué necesita la ruta completa al icon.xpm?
Nicky De Maeyer
1
¿Dónde coloco el archivo eclipse.desktop?
Jonathan
1

La salida dice que también buscó en la RUTA:

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

Dijiste que puedes iniciar eclipsedesde una terminal: en este caso, diría que tu javaestá instalado en un directorio no estándar, que se agrega a tu RUTA mediante un script de inicio de terminal (bashrc, zshrc, etc.) pero no se agrega a su sesión cuando inicia sesión. Entonces, cuando está en una sesión de terminal, su RUTA es diferente de la que se usa cuando se invoca el archivo .desktop.

Para solucionar este caso:

  • Para ver dónde javaestá instalado:which java
  • Comprueba ~/.profilesi la RUTA correcta con el javadirectorio está configurada. Si la ruta correcta sólo se encuentra en .bashrc, .zshrc, etc, entonces es posible que los scripts no se invocan en el inicio de sesión, por lo que el camino no está configurado correctamente. Además, si tienes ~/.bash_profileo ~/.bash_logintienes que comprobarlos también. Si proporciona estos archivos, podemos investigar si este es su problema.

Si no puede resolverlo de esta manera, siempre puede modificar la RUTA directamente en el archivo .desktop con env PATH= ...

halconero
fuente
Ese es exactamente mi problema entonces. Configuré la RUTA al JDK en .bashrc. Mirando los documentos para un archivo .desktop, la entrada PATH parece hacer algo más. ¿Hay alguna manera de configurar la RUTA del sistema en .desktop?
Dean Schulze
Después de buscar en Google, descubrí que la solución es cambiar la línea Exec de esta manera: Exec=env PATH=/home/dean/bin/jdk1.8.0/bin:$PATH /home/dean/bin/eclipse-standard-luna-M5-linux-gtk-x86_64/eclipse/eclipse los documentos para el archivo .desktop no fueron de ayuda.
Dean Schulze
Sin embargo, la misma modificación a la línea Exec = ... no funciona para iniciar IntelliJ a través del archivo idea.sh.
Dean Schulze
@DeanSchulze Sí, Exec=env PATH= ...eso es lo que quise decir en mi última línea. Normalmente le gustaría configurar PATH en .profile, no .bashrc. El archivo .profile es analizado por el shell de inicio de sesión, por lo que configurará PATH correctamente cuando inicie sesión, y luego no habrá necesidad de la envsolución. En Debian / Ubuntu .profile fuentes .bashrc, así que esto no debería ser un problema, pero tal vez su .profile no lo esté haciendo, así que verifíquelo. O tiene un archivo .bash_profile o .bash_login que anula la configuración de .profile.
cetrero
@DeanSchulze Entonces, para resumir, configure su RUTA en .profile (o .bash_profile o .bash_login si tiene uno de esos archivos) que no esté en .bashrc, o asegúrese de que .bashrc sea originado por los archivos antes mencionados. Si lo configura de esta manera, su RUTA también debe ser correcta para los archivos .desktop, y no habrá necesidad de "engañar".
cetrero
1

Copié el siguiente bloque desde dentro de la if [ -n "$BASH_VERSION" ]; thendeclaración:

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

También lo intenté sin la declaración if:

. "$HOME/.bashrc"

pero Eclipse falla con el mismo mensaje de error en ambos casos. Aparentemente HOMEno está configurado cuando se ejecuta lightdm ~/.profile.

Establecer explícitamente la ruta en ~/.profiletrabajos, pero quiero mantener mi RUTA y mis otras características Bash (alias, funciones) en el mismo archivo.

La solución es establecer el PATHen la Exec=env PATH=$PATH:...línea en eclipse.desktop. Sin embargo, nada de lo que he probado funciona para iniciar IntelliJ desde un icono de escritorio.

Dado que está reinventando la experiencia de la GUI de Linux con Unity, tal vez sea hora de dejar atrás la serie de scripts propensos a errores y usar algo que sea menos propenso a errores y más fácil de usar. Los scripts aún tendrían que estar allí para bash shells, pero el escritorio de Unity podría ser independiente de ellos.

Dean Schulze
fuente
1

Tengo un método muy simple.

Abra Gedit o Editor de texto. Añadir:

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

Guardar en el escritorio como eclipse.desktop.

Haga clic derecho en el eclipse.desktoparchivo> haga clic en propiedades> haga clic en la pestaña Permisos >> Haga clic en la casilla de verificación de Ejecutar

TestingRule
fuente