@@ -21,13 +21,16 @@ function print_info_header() {
2121function set_configuration() {
2222 # jri
2323 JRI_URL=" https://ci.adoptopenjdk.net/view/ev3dev/job/openjdk11_build_ev3_linux/lastSuccessfulBuild/artifact/build/jri-ev3.tar.gz"
24+ JDK_URL=" https://ci.adoptopenjdk.net/view/ev3dev/job/openjdk11_build_ev3_linux/lastSuccessfulBuild/artifact/build/jdk-ev3.tar.gz"
2425 JRI_DIR=" /opt/jri-11-ev3"
26+ JDK_DIR=" /opt/jdk-11-ev3"
2527 JRI_PRIORITY=1111
2628
2729 # packages
2830 OPENCV_PKGS=" libopencv2.4-java"
2931 RXTX_PKGS=" librxtx-java"
3032 JRE_PKGS=" openjdk-8-jre-headless"
33+ JDK_PKGS=" openjdk-8-jdk-headless"
3134
3235 # class lists
3336 JRI_CLASSLIST=" $JRI_DIR /lib/classlist"
@@ -111,6 +114,7 @@ function do_help() {
111114 echo " Installer options:"
112115 echo " sudo ./installer.sh update ... update APT repositories"
113116 echo " sudo ./installer.sh java ... installs Java"
117+ echo " sudo ./installer.sh fulljdk ... installs full JDK on the brick (not normally necessary)"
114118 echo " sudo ./installer.sh opencv ... installs OpenCV libraries"
115119 echo " sudo ./installer.sh rxtx ... installs RXTX library"
116120 echo " sudo ./installer.sh javaLibs ... installs ev3dev-lang-java libraries"
@@ -135,13 +139,27 @@ function do_rxtx() {
135139# Install Java by a platform specific way
136140function java_install() {
137141 if [ " $PLATFORM " = " ev3" ]; then
138- java_install_jri
139- return $?
142+ if [ " $1 " == " small" ]; then
143+ java_install_jri " $JRI_URL " " $JRI_DIR " " true" " jri"
144+ return $?
145+ elif [ " $1 " == " full" ]; then
146+ java_install_jri " $JDK_URL " " $JDK_DIR " " false" " jdk"
147+ return $?
148+ else
149+ return 1
150+ fi
140151 elif [ " $PLATFORM " = " brickpi" ] ||
141152 [ " $PLATFORM " = " brickpi3" ] ||
142153 [ " $PLATFORM " = " pistorms" ]; then
143- java_install_ppa
144- return $?
154+ if [ " $1 " == " small" ]; then
155+ java_install_ppa " $JRE_PKGS "
156+ return $?
157+ elif [ " $1 " == " full" ]; then
158+ java_install_ppa " $JDK_PKGS "
159+ return $?
160+ else
161+ return 1
162+ fi
145163 fi
146164}
147165
@@ -164,31 +182,42 @@ function java_find() {
164182 JAVA_VERSION_RAW=" $( " $JAVA_REAL_EXE " -version 2>&1 ) "
165183 JAVA_VERSION=" $( echo " $JAVA_VERSION_RAW " | awk -F ' "' ' /version/ {print $2}' ) "
166184
167- echo " Installed Java version: '${JAVA_VERSION} ', installing anyway ."
185+ echo " Installed Java version: '${JAVA_VERSION} ', proceeding with installation ."
168186 write_log " old java ver: $JAVA_VERSION "
169187 return 0
170188}
171189
172190# #####################################
173191# Install the latest OpenJDK for EV3
192+ # $1 => source URL
193+ # $2 => destination directory
194+ # $3 => if alternatives should be updated (true/false)
195+ # $4 => in-archive directory name
174196function java_install_jri() {
175- write_log " installing jri manually from jenkins"
197+ write_log " installing java manually from jenkins"
176198
177- for i in " $( ls " $JRI_DIR /bin" ) " ; do
178- update-alternatives --remove " $i " " $JRI_DIR /bin/$i " || true
179- done
180- rm -rf " $JRI_DIR " || true
181-
182- wget -nv " $JRI_URL " -O /tmp/jri.tar.gz || return $?
183- tar -C /tmp -xf /tmp/jri.tar.gz
184- mv /tmp/jri " $JRI_DIR "
185-
186- write_log " setting alternatives"
187- for i in $( ls " $JRI_DIR /bin" ) ; do
188- update-alternatives --install " /usr/bin/$i " " $i " " $JRI_DIR /bin/$i " " $JRI_PRIORITY "
189- done
199+ if [ " $3 " = " true" ]; then
200+ for i in " $( ls " $JRI_DIR /bin" ) " ; do
201+ update-alternatives --remove " $i " " $JRI_DIR /bin/$i " || true
202+ done
203+ fi
204+ rm -rf " $2 " /tmp/java-extract || true
205+ mkdir -p /tmp/java-extract
206+
207+ wget -nv " $1 " -O /tmp/java-extract/pkg.tar.gz || return $?
208+ tar -C /tmp/java-extract -xf /tmp/java-extract/pkg.tar.gz
209+ mv " /tmp/java-extract/$4 " " $2 "
210+
211+ if [ " $3 " = " true" ]; then
212+ write_log " setting alternatives"
213+ for i in $( ls " $JRI_DIR /bin" ) ; do
214+ update-alternatives --install " /usr/bin/$i " " $i " " $JRI_DIR /bin/$i " " $JRI_PRIORITY "
215+ done
216+ JAVA_REAL_EXE=" $( which java) "
217+ else
218+ JAVA_REAL_EXE=" $2 /bin/java"
219+ fi
190220
191- JAVA_REAL_EXE=" $( which java) "
192221 CLASSLIST=" $JRI_CLASSLIST "
193222
194223 write_log " dumping java cds"
@@ -198,6 +227,7 @@ function java_install_jri() {
198227
199228# #######################################
200229# Install the latest Debian armhf java
230+ # $1 => package names
201231function java_install_ppa() {
202232 write_log " installing jre from debian repo"
203233
@@ -213,10 +243,12 @@ function java_install_ppa() {
213243
214244 # workaround some weird bug
215245 mkdir -p /usr/lib/jvm/java-8-openjdk-armhf/jre/lib/arm/
246+ mkdir -p /usr/lib/jvm/java-8-openjdk-armhf/lib/arm/
216247 ln -s client /usr/lib/jvm/java-8-openjdk-armhf/jre/lib/arm/server
248+ ln -s client /usr/lib/jvm/java-8-openjdk-armhf/lib/arm/server
217249
218250 # install package
219- apt-get install --yes --no-install-recommends -t " $JRE_REPO_NAME " $JRE_PKGS || return $?
251+ apt-get install --yes --no-install-recommends -t " $JRE_REPO_NAME " $1 || return $?
220252
221253 JAVA_REAL_EXE=" $( which java) "
222254}
@@ -279,7 +311,12 @@ elif [ "$1" = "update" ]; then
279311
280312elif [ " $1 " = " java" ]; then
281313 java_find || exit $?
282- java_install || exit $?
314+ java_install small || exit $?
315+ print_java
316+ exit 0
317+
318+ elif [ " $1 " = " fulljdk" ]; then
319+ java_install full || exit $?
283320 print_java
284321 exit 0
285322
0 commit comments