web-dev-qa-db-fra.com

Comment créer un fichier .desktop pour lancer eclipse?

Lorsque je crée un fichier .desktop pour lancer Eclipse (dernière version prise en charge par JDK 1.8), l'erreur suivante apparaît:

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

Pourquoi cherche-t-il à trouver le JRE dans le répertoire où se trouve le binaire Eclipse?

Je peux lancer Eclipse à partir de la ligne de commande et le brancher au lanceur pour que cela fonctionne. Pourquoi le fichier .desktop est-il si confus quant à ce qu'il est censé faire?

Voici mon fichier .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;

Le problème que je rencontre n’est pas ce qui a été demandé dans la question liée ci-dessus en double . Mon problème est parce que mon chemin d'accès au JDK est défini dans mon .bashrc.

10
Dean Schulze

J'ai copié le bloc suivant à partir de l'instruction if [ -n "$BASH_VERSION" ]; then:

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

J'ai aussi essayé sans la déclaration if:

. "$HOME/.bashrc"

mais Eclipse échoue avec le même message d'erreur dans les deux cas. Apparemment, HOME n'est pas défini lorsque lightdm exécute ~/.profile.

Définir explicitement le chemin dans ~/.profile fonctionne, mais je souhaite conserver mon chemin PATH et mes autres fonctionnalités Bash (alias, fonctions) dans le même fichier.

La solution consiste à définir le PATH sur la ligne Exec=env PATH=$PATH:... dans Eclipse.desktop. Rien que j'ai essayé ne fonctionne cependant pour démarrer IntelliJ à partir d'une icône de bureau.

Étant donné que vous réinventez l'expérience de l'interface graphique Linux avec Unity, il est peut-être temps de laisser la série de scripts sujette aux erreurs et d'utiliser quelque chose de moins sujet aux erreurs et plus facile à utiliser. Les scripts devraient toujours être là pour les shells bash, mais le bureau Unity pourrait en être indépendant.

1
Dean Schulze

J'ai eu le même problème.

Le fichier Eclipse.desktop suivant fonctionne dans 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

Je n'ai pas modifié le fichier Eclipse.ini

Une autre solution consiste à modifier le fichier Eclipse.ini sans modifier votre Eclipse.desktop

Mon 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

L'option -vm et sa valeur (le chemin) doivent figurer sur des lignes séparées.

Plus d'infos: Wiki Eclipse.ini

8
iv4z

La sortie dit qu'elle a aussi cherché dans le PATH:

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

Vous avez dit que vous pouvez lancer Eclipsedepuis un terminal: dans ce cas, je dirais que votre Javaest installé dans un répertoire non standard, qui est ajouté à votre PATH par un script de démarrage de terminal (bashrc, zshrc, etc.), mais il pas ajouté à votre session lorsque vous vous connectez. Ainsi, lorsque vous êtes dans une session de terminal, votre PATH est différent de celui utilisé lorsque le fichier .desktop est appelé.

Pour résoudre ce cas:

  • Pour savoir où Javaest installé: which Java
  • Vérifiez votre ~/.profile si le PATH correct avec le répertoire Javaest défini dans celui-ci. Si le chemin correct est uniquement défini dans .bashrc, .zshrc, etc., il est possible que ces scripts ne soient pas appelés lors de la connexion. Le PATH n'est donc pas défini correctement. De plus, si vous avez ~/.bash_profile ou ~/.bash_login, vous devez également les vérifier. Si vous fournissez ces fichiers, nous pouvons déterminer s'il s'agit de votre problème.

Si vous ne pouvez pas le résoudre de cette façon, vous pouvez toujours modifier le PATH directement dans le fichier .desktop avec env PATH= ...

1
falconer

J'ai une méthode très simple.

Ouvrez Gedit ou l'éditeur de texte. Ajouter:

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

Enregistrer dans le bureau sous Eclipse.desktop.

Clic droit sur le fichier Eclipse.desktop> cliquez sur propriétés> cliquez sur l'onglet Autorisations >> Cliquez sur le bouton case à cocher d'exécution

1
TestingRule