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

12

Lorsque je crée un fichier .desktop pour lancer eclipse (dernière version avec prise en charge de JDK 1.8), j'obtiens l'erreur suivante:

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 essaie-t-il de trouver le JRE dans le répertoire où se trouve le binaire éclipse?

Je peux lancer Eclipse à partir de la ligne de commande, et je peux l'épingler au lanceur et 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 tant que doublon . Mon problème est que mon CHEMIN vers le JDK est défini dans mon .bashrc.

Dean Schulze
la source
La seule différence entre mon eclipse.desktop et celui de cette question est qu'il ajoute quelques arguments lors du démarrage d'Eclipse. Lorsque j'ajoute ces mêmes arguments, j'obtiens le même message d'erreur. Les fichiers Unity .desktop ne peuvent apparemment pas lancer Eclipse.
Dean Schulze

Réponses:

9

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

Le prochain fichier eclipse.desktop 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 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 d'accès) doivent se trouver sur des lignes distinctes.

Plus d'infos: Wiki eclipse.ini

iv4z
la source
pourquoi a-t-il besoin du chemin complet vers icon.xpm?
Nicky De Maeyer
1
où dois-je placer le fichier eclipse.desktop?
Jonathan
1

La sortie dit qu'elle a aussi recherché dans le CHEMIN:

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 n'est pas ajouté à votre session lorsque vous vous connectez. Ainsi, lorsque vous êtes dans une session de terminal, votre PATH est différent de celui qui est utilisé lorsque le fichier .desktop est appelé.

Pour résoudre ce cas:

  • Pour voir où javaest installé:which java
  • Vérifiez votre ~/.profilesi le CHEMIN correct avec le javarépertoire y est défini. Si le chemin correct est uniquement défini dans .bashrc, .zshrc, etc. , alors il est possible que ces scripts ne sont pas invoquées lors de la connexion, de sorte que le PATH est pas correctement. Aussi si vous en avez ~/.bash_profileou si vous devez les ~/.bash_loginvérifier aussi. Si vous fournissez ces fichiers, nous pouvons vérifier si c'est votre problème.

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

fauconnier
la source
C'est exactement mon problème alors. J'ai défini le CHEMIN sur le JDK dans .bashrc. En regardant les documents pour un fichier .desktop, l'entrée PATH semble faire autre chose. Existe-t-il un moyen de définir le chemin du système dans .desktop?
Dean Schulze
Après quelques recherches sur Google, j'ai trouvé que la solution était de changer la ligne Exec comme ceci: Exec=env PATH=/home/dean/bin/jdk1.8.0/bin:$PATH /home/dean/bin/eclipse-standard-luna-M5-linux-gtk-x86_64/eclipse/eclipse Les documents pour le fichier .desktop n'étaient d'aucune aide.
Dean Schulze
Cependant, la même modification de la ligne Exec = ... ne fonctionne pas pour lancer IntelliJ via le fichier idea.sh.
Dean Schulze
@DeanSchulze Oui, Exec=env PATH= ...c'est ce que je voulais dire dans ma dernière ligne. Normalement, vous souhaitez configurer PATH dans .profile, pas .bashrc. Le fichier .profile est analysé par le shell de connexion afin de configurer correctement PATH lorsque vous vous connectez, et il n'y aura alors pas besoin de la envsolution de contournement. Sur Debian / Ubuntu .profile sources .bashrc, donc cela ne devrait pas être un problème, mais peut-être que votre .profile ne le fait pas, alors vérifiez-le. Ou vous avez un fichier .bash_profile ou .bash_login qui remplace les paramètres .profile.
fauconnier
@DeanSchulze Donc, pour résumer, définissez votre CHEMIN dans .profile (ou .bash_profile ou .bash_login si vous avez l'un de ces fichiers) pas dans .bashrc, ou assurez-vous que .bashrc provient des fichiers susmentionnés. Si vous le configurez de cette façon, votre CHEMIN devrait également être correct pour les fichiers .desktop, et il n'y aura pas besoin de "tromper".
fauconnier
1

J'ai copié le bloc suivant à partir de la if [ -n "$BASH_VERSION" ]; thendéclaration:

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

J'ai également essayé sans l'instruction if:

. "$HOME/.bashrc"

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

Définir explicitement le chemin dans les ~/.profiletravaux, mais je veux garder mon CHEMIN et mes autres fonctionnalités Bash (alias, fonctions) dans le même fichier.

La solution consiste à définir PATHla Exec=env PATH=$PATH:...ligne sur eclipse.desktop. Cependant, rien de ce que j'ai essayé ne fonctionne 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 derrière et d'utiliser quelque chose qui est moins sujet aux erreurs et plus facile à utiliser. Les scripts devraient toujours être là pour les shells bash, mais le bureau Unity pourrait être indépendant d'eux.

Dean Schulze
la source
1

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 sur le bureau sous eclipse.desktop.

Cliquez avec le eclipse.desktopbouton droit sur le fichier> cliquez sur les propriétés> cliquez sur l'onglet Autorisations >> Cochez la case Exécuter

TestingRule
la source