diff --git a/ulib/.ulib_version b/ulib/.ulib_version index b8626c4..7ed6ff8 100644 --- a/ulib/.ulib_version +++ b/ulib/.ulib_version @@ -1 +1 @@ -4 +5 diff --git a/ulib/java b/ulib/java index 4785efa..de567ad 100644 --- a/ulib/java +++ b/ulib/java @@ -324,7 +324,9 @@ function __java_select() { export JAVA_HOME="$SELECTED_JAVA_HOME" export JAVA="$SELECTED_JAVA" export JAVAC="$SELECTED_JAVAC" - export PATH="$JAVA_HOME/bin:$PATH" + udelpath "$JAVA_HOME/bin" + uinspath "$JAVA_HOME/bin" + export PATH return 0 fi fi @@ -336,8 +338,12 @@ function __java_select_default() { # prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, puis 14 # la version 13 n'est jamais sélectionnée automatiquement if [ -n "$JAVA_HOME" ]; then + export JAVA_HOME # s'assurer que cette variable est exportée export JAVA="$JAVA_HOME/bin/java" export JAVAC="$JAVA_HOME/bin/java" + udelpath "$JAVA_HOME/bin" + uinspath "$JAVA_HOME/bin" + export PATH return 0 fi local vm @@ -355,27 +361,27 @@ function select_java() { local v vms homes case "$1" in - 1.3|1.3+) + 1.3|1.3+|13|13+) for v in 13 14 5 6 7; do __java_select "$v" "$2" && return 0 done ;; - 1.4|1.4+) + 1.4|1.4+|14|14+) for v in 14 5 6 7; do __java_select "$v" "$2" && return 0 done ;; - 1.5|1.5+) + 1.5|1.5+|5|5+) for v in 5 6 7; do __java_select "$v" "$2" && return 0 done ;; - 1.6|1.6+) + 1.6|1.6+|6|6+) for v in 6 7; do __java_select "$v" "$2" && return 0 done ;; - 1.7|1.7+) + 1.7|1.7+|7|7+) for v in 7; do __java_select "$v" "$2" && return 0 done @@ -385,7 +391,7 @@ function select_java() { } function select_java_exact() { - # sélectionner la version *exacte* de javac correspondant à $1 + # sélectionner la version *exacte* de java correspondant à $1 # $1== 1.3|1.4|1.5|1.6|1.7 pour une correspondance exacte # $1== 1.3+|1.4+|1.5+|1.6+|1.7+ pour une version minimum # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la @@ -393,42 +399,42 @@ function select_java_exact() { local v vms homes case "$1" in - 1.3) + 1.3|13) __java_select 13 && return 0 ;; - 1.3+) + 1.3+|13+) for v in 13 14 5 6 7; do __java_select "$v" "$2" && return 0 done ;; - 1.4) + 1.4|14) __java_select 14 && return 0 ;; - 1.4+) + 1.4+|14+) for v in 14 5 6 7; do __java_select "$v" "$2" && return 0 done ;; - 1.5) + 1.5|5) __java_select 5 "$2" && return 0 ;; - 1.5+) + 1.5+|5+) for v in 5 6 7; do __java_select "$v" "$2" && return 0 done ;; - 1.6) + 1.6|6) __java_select 6 "$2" && return 0 ;; - 1.6+) + 1.6+|6+) for v in 6 7; do __java_select "$v" "$2" && return 0 done ;; - 1.7) + 1.7|7) __java_select 7 "$2" && return 0 ;; - 1.7+) + 1.7+|7+) for v in 7; do __java_select "$v" "$2" && return 0 done @@ -437,6 +443,25 @@ function select_java_exact() { return 1 } +function select_java_any() { + # Sélectionner la version exacte de java correspondant aux arguments, dans + # l'ordre, jusqu'à ce qu'un argument corresponde. DEFAULT correspond à la + # valeur actuelle de JAVA_HOME, si elle est définie. + # Si aucun argument n'est défini, on assume "DEFAULT 1.5 1.6 1.7 1.4" + local v + [ -n "$*" ] || set -- DEFAULT 5 6 7 1.4 + for v in "$@"; do + if [ "$v" == DEFAULT ]; then + if [ -n "$JAVA_HOME" ]; then + __java_select_default && return 0 + fi + else + select_java_exact "$v" && return 0 + fi + done + return 1 +} + ################################################################################ # Gestion des préfixes