Moin,
ich hätte das was; schnell zusammengestoppelt - weil ich die Idee nicht schlecht finde und mich über meine rumfliegenden jar-files auch immer ärgere ☺
Mein kleines Quick-and-Dirty Script
prüft ob ein jardepot existiert; hier in /usr/share/jardepot
prüft dann, ob das verzeichnis schreibbar ist
prüft dann ob die aufgerufene jardatei schon darin enthalten ist, wenn nicht kopiert das script
diese hinein und ruft dann java -jar /usr/share/jardepot/<jarname>.jar auf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 | #!/bin/sh
#
# Ruft ein .jar-file im $JARDEPOT auf
# wenn noch nicht vorhanden kopiert es diesen jar-file dorthin
#
# Aufruf "jarex <jarfile.jar>"
# Diese Datei als jarex nach /usr/bin kopieren
#
# erstmal ein paar variablen setzen
export PATH=/usr/bin:/usr/local/bin:$PATH
export JARDEPOT=/usr/share/jardepot
export JAVA=/usr/bin/java
#
#
# pruefe ob das jardepot erreichbar ist und wir sachen hineinkopieren koennen
if [ ! -d $JARDEPOT ]
then
echo "ERROR: Kein $JARDEPOT!"
echo "Erst anlegen und rechte setzen, dass wir hineinkopieren koennen!"
echo "Taste fuer Ende"
read nothing
exit 0
else
touch ${JARDEPOT}/TESTFILE >/dev/null 2>&1 && rm -f ${JARDEPOT}/TESTFILE >/dev/null 2>&1
if [ $? -ne 0 ]
then
echo "ERROR: Kann in $JARDEPOT nicht hineinschreiben, bitte rechte setzen!"
echo "Taste fuer Ende"
read nothing
exit 0
fi
fi
#
# wenn kein parameter angegeben zeige die hilfe und exit
if [[ "$1" = "" ]]
then
echo "Aufruf: jarex <jarfile.jar>"
echo "ruft die Datei jarfile.jar aus dem jardepot $JARDEPOT auf."
echo "Falls sie dort noch nicht existiert wird sie erst dorthin kopiert und dann"
echo "von dort gestartet."
echo "Taste fuer Ende"
read nothing
exit 0
fi
# OK, wir haben einen Parameter, nehmen wir an es ist ein jarfile :-)
#die zu kopierende/auszufuehrende datei ist parameter 1
export JARFILE=$1
#
# wenn $JARFILE schon im jardepot rufen wir es von dort auf
#
if [ -f ${JARDEPOT}/${JARFILE} ]
then
echo "OK: $JARFILE existiert in $JARDEPOT"
echo "rufe auf: $JAVA -jar ${JARDEPOT}/${JARFILE}"
$JAVA -jar ${JARDEPOT}/${JARFILE}
else
echo "HINWEIS: Kopiere $JARFILE nach $JARDEPOT"
cp $JARFILE $JARDEPOT
if [ -f ${JARDEPOT}/${JARFILE} ]
then
echo "OK: $JARFILE exisitiert in $JARDEPOT"
echo "rufe auf: $JAVA -jar ${JARDEPOT}/${JARFILE}"
$JAVA -jar ${JARDEPOT}/${JARFILE}
else
echo "ERROR: Sorry so geht das nicht"
fi
fi
|
Ohne Gewähr, aber für mich funktioniert es so.
Ich kann nicht ausschliessen, dass das Script noch Fehler logischer Art enthält.
Und ich weiss, dass man das wesentlich eleganter machen kann. Aber, wer micht kennt weiss, dass meine Scripte immer
Quick-and-Dirty sind, weil ich weniger wert auf Schönheit lege, sondern mehr auf Transparenz, Einfachheit, Funktionalität und dass das Ganze leicht zu verstehen und zu erweitern ist!
Aufzurufen als
jarex <filenname>.jar
wobei das "jarex" bei mir als executable in /usr/bin liegt. So kann ich das von überall erreichen.
Für mich selbst werde ich noch die Erweiterung .jar obsolet machen, so dass man nur noch
jarex datei
aufrufen muss.
Ich hoffe, es gibt Dir ein paar Anregungen. ☺