@@ -9,9 +9,41 @@ USERNAME=${3:-"automatic"}
9
9
UPDATE_RC=${4:- " true" }
10
10
ADDITIONAL_JAVA_VERSION=11
11
11
12
- /tmp/build-features/java-debian.sh " ${JAVA_VERSION} " " ${SDKMAN_DIR} " " ${USERNAME} " " ${UPDATE_RC} "
13
-
14
- # If the user selected JDK 8, install the JDK 11 as well
12
+ is_jdk_8=" false"
15
13
if echo " ${JAVA_VERSION} " | grep -E ' ^8([\s\.]|$)' > /dev/null 2>&1 ; then
14
+ is_jdk_8=" true"
15
+ fi
16
+
17
+ # If the user selected JDK 8, install the JDK 11 as well since this is needed by the Java extension
18
+ if [ " ${is_jdk_8} " = " true" ]; then
19
+ echo " (*) Installing JDK ${ADDITIONAL_JAVA_VERSION} as Java VS Code extension requires a recent JDK..."
16
20
/tmp/build-features/java-debian.sh " ${ADDITIONAL_JAVA_VERSION} " " ${SDKMAN_DIR} " " ${USERNAME} " " ${UPDATE_RC} "
21
+ jdk_11_folder=" $( ls --format=single-column ${SDKMAN_DIR} /candidates/java | grep -oE -m 1 ' 11\..+' ) "
22
+ ln -s " ${SDKMAN_DIR} /candidates/java/${jdk_11_folder} " /extension-java-home
23
+
24
+ # Determine the appropriate non-root user
25
+ username=" "
26
+ possible_users=(" vscode" " node" " codespace" " $( awk -v val=1000 -F " :" ' $3==val{print $1}' /etc/passwd) " )
27
+ for current_user in ${possible_users[@]} ; do
28
+ if id -u ${current_user} > /dev/null 2>&1 ; then
29
+ username=${current_user}
30
+ break
31
+ fi
32
+ done
33
+ if [ " ${username} " = " " ]; then
34
+ username=root
35
+ fi
36
+ else
37
+ ln -s ${SDKMAN_DIR} /candidates/java/current /extension-java-home
17
38
fi
39
+
40
+ echo " (*) Installing JDK ${JAVA_VERSION} ..."
41
+ /tmp/build-features/java-debian.sh " ${JAVA_VERSION} " " ${SDKMAN_DIR} " " ${USERNAME} " " ${UPDATE_RC} "
42
+ if [ " ${is_jdk_8} " = " true" ]; then
43
+ # Set current and default version to last SDK installed
44
+ jdk_full_version=" $( ls --format=single-column " ${SDKMAN_DIR} /candidates/java" | sort -rV | grep -oE -m 1 " ${JAVA_VERSION} \\ ..+" ) "
45
+ echo " (*) Setting default JDK to ${jdk_full_version} ..."
46
+ . ${SDKMAN_DIR} /bin/sdkman-init.sh
47
+ sdk use java " ${jdk_full_version} "
48
+ sdk default java " ${jdk_full_version} "
49
+ fi
0 commit comments