2 votes

Impossible de créer un lanceur .desktop pour XMind

J'ai téléchargé et installé XMind il est venu comme un .zip par opposition à .deb ce qui signifie que j'ai dû l'installer en utilisant un script bash.

J'ai placé les fichiers extraits dans un dossier temporaire appelé .installed dans mon dossier personnel.

J'essaie de créer un lanceur de bureau pour l'exécutable fourni avec l'installation à l'adresse suivante /home/user01/.installed/xmind-8-linux/XMind_amd64/XMind .

J'ai créé un .desktop comme ceci :

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/home/user01/.installed/xmind-8-linux/XMind_amd64/XMind
Name=XMind
Comment=Mind mapping software
Icon=/home/user01/Pictures/Icons/new_branding_new_logo.png

Et je l'ai placé dans /usr/share/applications/ .

Le problème est que chaque fois que j'essaie d'exécuter l'application, j'obtiens cette erreur :

enter image description here

En cliquant directement sur l'exécutable, l'application se lance normalement et l'erreur est la même quel que soit le propriétaire du fichier (root ou user), je ne comprends donc pas ce que je fais de mal. Tout conseil serait le bienvenu.

De plus, le journal des erreurs dit ceci :

!SESSION 2016-11-16 14:14:38.215 -----------------------------------------------
eclipse.buildId=R3.7.0.201611010032
java.version=1.8.0_111
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_GB
Command-line arguments:  -os linux -ws gtk -arch x86_64 -data ../workspace

!ENTRY org.eclipse.osgi 4 0 2016-11-16 14:14:38.410
!MESSAGE Application error
!STACK 1
java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:78)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

Mise à jour :
Running ./XMind depuis le terminal fonctionne comme prévu.
Parcourir tout le chemin /home/user01/.installed/xmind-8-linux/XMind_amd64/XMind crée une erreur.
Lorsque l'erreur se produit, l'application crée un configuration dans le dossier ~/ qui est normalement situé dans le même dossier que l'exécutable. Je ne comprends toujours pas ce qui se passe ici.

Solution :

(Merci à Katu) Voici comment j'ai réussi à résoudre le problème :

Créez un script bash au même endroit que l'exécutable appelé xmind.sh

Entrez dans le fichier :

#!/bin/bash

(cd /home/user01/.installed/xmind-8-linux/XMind_amd64/ && ./XMind)

Créer un lanceur .desktop avec le nouveau script à la place de l'exécutable.

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/home/user01/.installed/xmind-8-linux/XMind_amd64/xmind.sh
Name=XMind
Comment=Mind mapping software
Icon=/home/user01/Pictures/Icons/new_branding_new_logo.png

4voto

Chai T. Rex Points 4969

Lorsque vous l'exécutez en tant que ./Xmind votre répertoire courant est le même que celui de l'application Xmind exécutable. Pour reproduire cet effet dans un .desktop ajoutez un Path= pour définir le répertoire de travail :

Path=/home/user01/.installed/xmind-8-linux/XMind_amd64/

Pour plus d'informations, voir le site .desktop sur ce que le Path l'entrée fait .


Je recommanderais également de déplacer le .desktop fichier de /usr/share/applications à /home/user01/.local/share/applications/ En effet, si vous stockez l'application dans votre répertoire personnel, il s'agit probablement d'une application pour vous seul, et non pour tous les utilisateurs du système.

0voto

Katu Points 3365

Il semble que Xmind tente de créer un dossier à l'endroit d'où il est exécuté. Vous devrez indiquer au fichier .desktop de se déplacer vers cet emplacement avant de l'exécuter. De ce poste essayez quelque chose comme ça :

Exec=bash -c "export PATH=$PATH:`dirname %k`; your_command"

0voto

Philippe Roth Points 1

Merci pour toutes les informations.

J'ai eu le même problème, mais j'ai trouvé un moyen de le simplifier en utilisant Arronax. Elle est décrite dans ce document discussion .

Arronax fait le travail, car il est possible de spécifier dans quel dossier l'application (XMind) doit être lancée.

J'espère que cela vous aidera,
Phil

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X