diff --git a/lib/ulib/java b/lib/ulib/java index 16f80bb..89df1b6 100644 --- a/lib/ulib/java +++ b/lib/ulib/java @@ -15,6 +15,7 @@ JAVA_VMS6=(); JAVA_HOMES6=() JAVA_VMS7=(); JAVA_HOMES7=() JAVA_VMS8=(); JAVA_HOMES8=() JAVA_VMS11=(); JAVA_HOMES11=() +JAVA_VMS17=(); JAVA_HOMES17=() # versions locales 32 bits JAVA32_VMS1_3=(); JAVA32_HOMES1_3=() JAVA32_VMS1_4=(); JAVA32_HOMES1_4=() @@ -23,12 +24,14 @@ JAVA32_VMS6=(); JAVA32_HOMES6=() JAVA32_VMS7=(); JAVA32_HOMES7=() JAVA32_VMS8=(); JAVA32_HOMES8=() JAVA32_VMS11=(); JAVA32_HOMES11=() +JAVA32_VMS17=(); JAVA32_HOMES17=() # versions locales 64 bits JAVA64_VMS5=(); JAVA64_HOMES5=() JAVA64_VMS6=(); JAVA64_HOMES6=() JAVA64_VMS7=(); JAVA64_HOMES7=() JAVA64_VMS8=(); JAVA64_HOMES8=() JAVA64_VMS11=(); JAVA64_HOMES11=() +JAVA64_VMS17=(); JAVA64_HOMES17=() # version sélectionnée SELECTED_JAVA_VM=; SELECTED_JAVA_HOME= SELECTED_JAVA=; SELECTED_JAVAC= @@ -109,6 +112,14 @@ function __java_compute_vms() { __java_add HOMES8 "$HOME/opt/jvm64/$vm" 64 fi done + array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk17)" + for vm in "${vms[@]}"; do + v="${vm#jdk}" + if [ "$v" == 17 ]; then + __java_add VMS17 "$vm" 64 + __java_add HOMES17 "$HOME/opt/jvm64/$vm" 64 + fi + done array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk11)" for vm in "${vms[@]}"; do v="${vm#jdk}" @@ -142,6 +153,11 @@ function __java_compute_vms() { __java_add VMS11 "$vm" 64 __java_add HOMES11 "$HOME/opt/jvm64/$vm" 64 done + array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" "jdk-17.*" | LANG=C sort -r)" + for vm in "${vms[@]}"; do + __java_add VMS17 "$vm" 64 + __java_add HOMES17 "$HOME/opt/jvm64/$vm" 64 + done # Puis chercher dans les JVMs installées manuellement dans ~/opt array_from_lines vms "$(list_dirs "$HOME/opt" "sun-jdk-*")" for vm in "${vms[@]}"; do @@ -171,6 +187,14 @@ function __java_compute_vms() { __java_add HOMES11 "$HOME/opt/$vm" fi done + array_from_lines vms "$(list_dirs "$HOME/opt" jdk17)" + for vm in "${vms[@]}"; do + v="${vm#jdk}" + if [ "$v" == 17 ]; then + __java_add VMS17 "$vm" + __java_add HOMES17 "$HOME/opt/$vm" + fi + done array_from_lines vms "$(list_dirs "$HOME/opt" "j2sdk1.4.2*" | LANG=C sort -r)" for vm in "${vms[@]}"; do __java_add VMS1_4 "$vm" @@ -201,6 +225,11 @@ function __java_compute_vms() { __java_add VMS11 "$vm" __java_add HOMES11 "$HOME/opt/$vm" done + array_from_lines vms "$(list_dirs "$HOME/opt" "jdk-17.*" | LANG=C sort -r)" + for vm in "${vms[@]}"; do + __java_add VMS17 "$vm" + __java_add HOMES17 "$HOME/opt/$vm" + done # Puis chercher dans les JVMs installées manuellement dans /opt array_from_lines vms "$(list_dirs "/opt" "sun-jdk-*")" for vm in "${vms[@]}"; do @@ -230,6 +259,14 @@ function __java_compute_vms() { __java_add HOMES11 "/opt/$vm" fi done + array_from_lines vms "$(list_dirs "/opt" jdk17)" + for vm in "${vms[@]}"; do + v="${vm#jdk}" + if [ "$v" == 17 ]; then + __java_add VMS17 "$vm" + __java_add HOMES17 "/opt/$vm" + fi + done array_from_lines vms "$(list_dirs "/opt" "j2sdk1.4.2*" | LANG=C sort -r)" for vm in "${vms[@]}"; do __java_add VMS1_4 "$vm" @@ -260,6 +297,11 @@ function __java_compute_vms() { __java_add VMS11 "$vm" __java_add HOMES11 "/opt/$vm" done + array_from_lines vms "$(list_dirs "/opt" "jdk-17.*" | LANG=C sort -r)" + for vm in "${vms[@]}"; do + __java_add VMS17 "$vm" + __java_add HOMES17 "/opt/$vm" + done # Puis chercher dans les JVMs installées par le système dans # /usr/lib/jvm if check_sysinfos -d gentoo; then @@ -312,6 +354,9 @@ function __java_compute_vms() { elif [ "$v" == 11 ]; then __java_add VMS11 "$vm" __java_add HOMES11 "/usr/lib/jvm/$vm" + elif [ "$v" == 17 ]; then + __java_add VMS17 "$vm" + __java_add HOMES17 "/usr/lib/jvm/$vm" fi done if [ -d /usr/lib/j2sdk1.4-sun ]; then @@ -353,7 +398,7 @@ function __java_compute_vms() { function __java_dump_vms() { local v b i vms homes - for v in 1_3 1_4 5 6 7 8 11; do + for v in 1_3 1_4 5 6 7 8 11 17; do for b in "" 32 64; do vms="JAVA${b}_VMS${v}[@]"; vms=("${!vms}") homes="JAVA${b}_HOMES${v}[@]"; homes=("${!homes}") @@ -384,7 +429,7 @@ function __java_select_vms() { } function __java_select() { - # Sélectionner la version de java $1 (qui peut être 1_3, 1_4, 5, 6, 7, 8 ou 11) + # Sélectionner la version de java $1 (qui peut être 1_3, 1_4, 5, 6, 7, 8, 11, 17) # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la # version 32bits ou 64 bits. Sinon, la version sélectionnée peut être 32bits # ou 64bits selon ce qui est disponible. @@ -428,7 +473,7 @@ function __java_select() { function __java_select_default() { # Sélectionner la version de java par défaut. Si JAVA_HOME est défini, - # prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, 8, 11 puis 1_4 + # prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, 8, 11, 17 puis 1_4 # la version 1_3 n'est jamais sélectionnée automatiquement if [ -n "$JAVA_HOME" ]; then export JAVA_HOME # s'assurer que cette variable est exportée @@ -440,7 +485,7 @@ function __java_select_default() { return 0 fi local vm - for vm in 5 6 7 8 11 1_4; do + for vm in 5 6 7 8 11 17 1_4; do __java_select "$vm" && return 0 done return 1 @@ -448,7 +493,7 @@ function __java_select_default() { function select_java() { # sélectionner la version *minimum* de java correspondant à $1 - # $1 == 1.3|1.3+|1.4|1.4+|1.5|1.5+|1.6|1.6+|1.7|1.7+|1.8|1.8+|11|11+ + # $1 == 1.3|1.3+|1.4|1.4+|1.5|1.5+|1.6|1.6+|1.7|1.7+|1.8|1.8+|11|11+|17|17+ # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la # version 32bits ou 64 bits local v vms homes @@ -489,14 +534,19 @@ function select_java() { __java_select "$v" "$2" && return 0 done ;; + 17|17+) + for v in 17; do + __java_select "$v" "$2" && return 0 + done + ;; esac return 1 } function select_java_exact() { # sélectionner la version *exacte* de java correspondant à $1 - # $1 == 1.3|1.4|1.5|1.6|1.7|1.8|11 pour une correspondance exacte - # $1 == 1.3+|1.4+|1.5+|1.6+|1.7+|1.8+|11+ pour une version minimum + # $1 == 1.3|1.4|1.5|1.6|1.7|1.8|11|17 pour une correspondance exacte + # $1 == 1.3+|1.4+|1.5+|1.6+|1.7+|1.8+|11+|17+ pour une version minimum # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la # version 32bits ou 64 bits local v vms homes @@ -558,6 +608,14 @@ function select_java_exact() { __java_select "$v" "$2" && return 0 done ;; + 17) + __java_select 17 "$2" && return 0 + ;; + 17+) + for v in 17; do + __java_select "$v" "$2" && return 0 + done + ;; esac return 1 } @@ -566,9 +624,9 @@ 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 5 6 7 8 11 1.4" + # Si aucun argument n'est défini, on assume "DEFAULT 5 6 7 8 11 17 1.4" local v - [ -n "$*" ] || set -- DEFAULT 5 6 7 8 11 1.4 + [ -n "$*" ] || set -- DEFAULT 5 6 7 8 11 17 1.4 for v in "$@"; do if [ "$v" == DEFAULT ]; then if [ -n "$JAVA_HOME" ]; then