67 lines
1.7 KiB
Bash
Executable File
67 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
|
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
|
|
urequire DEFAULTS java
|
|
|
|
function display_help() {
|
|
uecho "$scriptname: Lancer un script après avoir sélectionné une version de java
|
|
|
|
USAGE
|
|
$scriptname [options] version [args...]
|
|
|
|
OPTIONS
|
|
-b, --bits 32|64|auto
|
|
--32
|
|
--64
|
|
Sélectionner une version 32 ou 64 bits de java
|
|
-e, --exact
|
|
Sélectionner la version *exacte* de java demandée, au lieu de la version
|
|
minimum correspondant à la version demandée.
|
|
Si la version requise de java n'est pas trouvée, retourner avec le code
|
|
d'erreur 254.
|
|
|
|
La version de java attendue peut-être exprimée de l'une des façons suivantes:
|
|
1.4 1.4+ 1.5 1.5+ 1.6 1.6+ 1.7 1.7+
|
|
Si args n'est pas spécifié, un shell est lancé dans lequel les variables
|
|
JAVA_HOME, JAVA, JAVAC et PATH sont mis à jour."
|
|
}
|
|
|
|
bits=
|
|
exact=
|
|
parse_opts + "${PRETTYOPTS[@]}" \
|
|
--help '$exit_with display_help' \
|
|
-b:,--bits: bits= \
|
|
-2,--32 bits=32 \
|
|
-4,--64 bits=64 \
|
|
-e,--exact exact=1 \
|
|
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
|
|
|
[ "$bits" == "auto" ] && bits=
|
|
javavers="${1:-1.5+}"; shift
|
|
javadesc="Java $javavers${bits:+ / $bits bits}"
|
|
|
|
estep "Sélection de $javadesc"
|
|
found=
|
|
if [ -n "$exact" ]; then
|
|
select_java_exact "$javavers" "$bits" && found=1
|
|
else
|
|
select_java "$javavers" "$bits" && found=1
|
|
fi
|
|
if [ -z "$found" ]; then
|
|
eerror "Impossible de trouver $javadesc"
|
|
exit 254
|
|
fi
|
|
eecho "JAVA_HOME=$JAVA_HOME"
|
|
|
|
if [ -n "$*" ]; then
|
|
estep "Lancement de $*"
|
|
if [ "${1%.jar}" != "$1" ]; then
|
|
exec java -jar "$@"
|
|
else
|
|
exec "$@"
|
|
fi
|
|
else
|
|
estep "Lancement d'un sous-shell"
|
|
exec "${SHELL:-bash}"
|
|
fi
|