J'ai créé un programme Java qui synchronise le contenu de deux répertoires. Le programme prend comme emplacement l'argument des deux répertoires afin de les synchroniser. Les informations de synchronisation sont stockées dans un fichier au format JSON dans chaque répertoire. J'ai une bibliothèque référencée json-simple-1.1.1.jar
J'exécute ceci à partir d'Eclipse sous Windows et tout fonctionne correctement . Je veux créer un script Shell pour pouvoir l'exécuter sur un terminal Linux en tapant sync dir1 dir2
où sync
est mon programme Java et dir1
et dir2
sont les chemins d'accès aux annuaires à synchroniser à partir de l'annuaire actuel.
Je suis très nouveau dans les scripts Shell et Linux et je ne sais pas si cela est facile à faire ou si cela va me prendre toute la journée.
créez un fichier nommé "sync" dans/usr/bin contenant les éléments suivants:
Java -jar {PATH TO JARFILE} $1 $2
Remplacez {PATH TO JARFILE}
par le chemin d'accès au fichier .jar
Rendre le fichier exécutable en tapant chmod +x sync
dans/usr/bin
vous pouvez créer un shell avec le nom "run.sh" (notez l'extension .sh indiquant qu'il s'agit d'un script shell) et le copier dans le répertoire/usr/local/bin.
1.Script (run.sh)
#!/bin/sh
arg1=$1
arg2=$2
##directory where jar file is located
dir=/directory-path/to/jar-file/
##jar file name
jar_name=json-simple-1.1.1.jar
## Permform some validation on input arguments, one example below
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Missing arguments, exiting.."
echo "Usage : $0 arg1 arg2"
exit 1
fi
Java -jar $dir/$jar_name arg1 arg2
copier le script dans/usr/local/bin
cp run.sh/usr/local/bin
Donner l'autorisation d'exécution au script
chmod u + x /usr/local/bin/test.sh
maintenant, vous pouvez taper simplement Word run ou run.sh en ligne de commande: Shell complétera automatiquement le nom du script et pourra également être exécuté en appuyant sur la touche Entrée.