web-dev-qa-db-fra.com

Fichier de bureau pour script bash

J'ai un fichier .desktop pour un script bash, mais lorsque je lance le fichier .desktop, rien ne se passe si ce n'est qu'une fenêtre de terminal s'affiche pendant une demi-seconde.

Si j'exécute le script bash directement (sans le fichier .desktop), le script fonctionne correctement (le fichier bash s'appelle 'minecraft'):

#!/bin/bash
Java -Xmx1024M -Xms512M -cp minecraft.jar net.minecraft.LauncherFrame

Le fichier est exécutable.

Ceci est mon fichier minecraft.desktop:

[Desktop Entry]
Type=Application
Name=Minecraft
Comment=Minecraft
Icon=/home/bram/Applications/Minecraft/icon.png
Exec=/home/bram/Applications/Minecraft/minecraft
Terminal=true
Categories=Minecraft;game

minecraft.desktop est situé dans ~/.local/share/applications

2
Bram Meerten

Apparemment, le script n'a pas pu trouver le fichier .jar. Lorsque j'exécute le fichier bash à l'aide du fichier .desktop, je suppose qu'il exécute le fichier bash situé dans le répertoire du fichier .desktop (~/.local/share/applications).

Lorsque je donne le nom de chemin complet au bocal, cela fonctionne bien:

#!/bin/bash
Java -Xmx1024M -Xms512M -cp /home/bram/Applications/Minecraft/minecraft.jar net.minecraft.LauncherFrame
3
Bram Meerten

Vous avez deux options:

1.) Définissez le répertoire de travail dans le fichier .desktop à l’emplacement du fichier .jar.

2.) Utilisez des chemins complets dans votre script Bash (comme vous l'avez fait)

1
user241583

Vous pouvez l'exécuter en tâche de fond:

#!/bin/bash
Nohup Java -Xmx1024M -Xms512M -cp minecraft.jar net.minecraft.LauncherFrame

(Notez le Nohup au début utilisé pour continuer à fonctionner)

0
hexafraction