11#! /bin/bash
22
3-
3+ # ####################################
4+ # Install the latest EV3 JRI bundle
45function java_install_bundle() {
56 if [ -d " $JRI_PATH_NEW " ]; then
67 echo " Sorry, we detected a previous installation in path: /opt/jri-10-build-050"
@@ -24,6 +25,9 @@ function java_install_bundle() {
2425 JAVA_REAL_EXE=" $JRI_EXE "
2526}
2627
28+
29+ # #######################################
30+ # Install the latest Debian armhf java
2731function java_install_ppa() {
2832 # ##
2933 # Add Debian Buster repo to Stretch
5357 JAVA_REAL_EXE=" $( which java) "
5458}
5559
56- # 1. Detect Java
57- # 1.1 Install Java
58- # 1.2 Create JAVA_HOME PENDING
60+ # ##########################################
61+ # Install Java by a platform specific way
62+ function java_just_install() {
63+ if [ " $PLATFORM " == " ev3" ]; then
64+ java_install_bundle
65+ elif [ " $PLATFORM " == " brickpi" ] ||
66+ [ " $PLATFORM " == " brickpi3" ] ||
67+ [ " $PLATFORM " == " pistorms" ]; then
68+ java_install_ppa
69+ fi
70+ }
5971
60- if type -p java; then
61- echo " Found java executable in PATH"
62- JAVA_REAL_EXE=" $( which java) "
72+ # ####################################
73+ # Locate existing Java installation
74+ function java_find() {
75+ if type -p java; then
76+ echo " Found java executable in PATH"
77+ JAVA_REAL_EXE=" $( which java) "
78+
79+ elif [[ -n " $JAVA_HOME " ]] && [[ -x " $JAVA_HOME /bin/java" ]]; then
80+ echo " Found java executable in JAVA_HOME"
81+ JAVA_REAL_EXE=" $JAVA_HOME /bin/java"
6382
64- if [ ! -d " $JRI_OPT /jri-10-build-050" ]; then
65- echo " But we will upgrade the Java version"
66- echo $JRI_OPT /jri-10-build-050
67- echo
68- if [ " $PLATFORM " == " ev3" ]; then
69- java_install_bundle
70- elif [ " $PLATFORM " == " brickpi" ] ||
71- [ " $PLATFORM " == " brickpi3" ] ||
72- [ " $PLATFORM " == " pistorms" ]; then
73- java_install_ppa
74- fi
7583 else
76- echo " Latest Java installed. "
77- echo $JRI_OPT /jri-10-build-050
84+ echo " No java detected "
85+ JAVA_REAL_EXE= " /bin/true "
7886 fi
87+ }
7988
80- elif [[ -n " $JAVA_HOME " ]] && [[ -x " $JAVA_HOME /bin/java" ]]; then
81- echo " Found java executable in JAVA_HOME"
82- JAVA_REAL_EXE=" $JAVA_HOME /bin/java"
89+ # ###########################################################
90+ # Check if the right Java is installed, if not, install it
91+ function java_install() {
92+ JAVA_VERSION_RAW=" $( " $JAVA_REAL_EXE " -version 2>&1 ) "
93+ JAVA_VERSION=" $( echo " $JAVA_VERSION_RAW " | awk -F ' "' ' /version/ {print $2}' ) "
94+ JAVA_VERSION_LATEST=" ${JAVA_LATEST[$PLATFORM]} "
8395
84- echo $JRI_OPT /jri-10-build-050
85- if [ ! -d " $JRI_OPT /jri-10-build-050" ]; then
86- echo " But upgrading Java version"
87- echo
96+ echo " Installed Java version: '${JAVA_VERSION} '"
97+
98+ if [ " $JAVA_VERSION " != " $JAVA_VERSION_LATEST " ]; then
99+ echo " Installing latest Java version ($JAVA_VERSION_LATEST )..."
100+ java_just_install
101+ else
102+ echo " Latest major Java version is installed."
88103 fi
104+ }
89105
90- else
91- echo " No java detected"
106+ # ############################
107+ # Perform maintenance tasks
108+ function java_postinstall() {
109+ update-alternatives --set " /usr/bin/java" " $JAVA_REAL_EXE "
92110
93- if [ " $PLATFORM " == " ev3" ]; then
94- java_install_bundle
95- elif [ " $PLATFORM " == " brickpi" ] ||
96- [ " $PLATFORM " == " brickpi3" ] ||
97- [ " $PLATFORM " == " pistorms" ]; then
98- java_install_ppa
99- fi
100- fi
111+ echo " Output of 'java -version':"
112+ " $JAVA_REAL_EXE " -version
101113
102- echo " Installation complete. Java version:"
103- " $JAVA_REAL_EXE " -version
114+ echo " Dumping class cache..."
115+ " $JAVA_REAL_EXE " -Xshare:dump
116+ }
104117
105- echo " Dumping class cache..."
106- " $JAVA_REAL_EXE " -Xshare:dump
118+ java_find
119+ java_install
120+ java_postinstall
0 commit comments