From a7ee0a7003be5fb33347cef9d556ad91a8154e81 Mon Sep 17 00:00:00 2001 From: Jacky Date: Wed, 1 Nov 2017 15:23:30 -0400 Subject: [PATCH] fix #1162 allow the JRE 9 --- refine | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/refine b/refine index 321b034d3..63a2fe2ca 100755 --- a/refine +++ b/refine @@ -823,6 +823,22 @@ whitespace() { done } +checkJavaMajorVersion() { + java_ver=$($JAVA -version 2>&1 | grep version | cut -d ' ' -f 3 | tr -d \") + # Java 6, 7, 8 starts with 1.x + if [ ${java_ver:0:2} == "1." ] ; then + major=`echo ${java_ver} | sed -E 's/1\.([0-9])[0-9_.]{2,6}/\1/g'` + else + # Java 9+ starts with x using semver versioning + major=`echo ${java_ver} | sed -E 's/([0-9]+)(-ea|(\.[0-9]+)*)/\1/g'` + fi + + JAVA_VERSION=$(echo ${major} | egrep '^(6|7|8|9)') + if [ -z "$JAVA_VERSION" ] ; then + error "OpenRefine requires Java version 6 or later. If you have multiple versions of Java installed, please set the environment variable JAVA_HOME to the correct version." + fi +} + # -------------------------- script ----------------------------- # ----- Normalize the current directory ------------------------- @@ -873,10 +889,7 @@ if [ ! -x "$JAVA" ] ; then error "Could not find the 'java' executable at '$JAVA', are you sure your JAVA_HOME environment variable is pointing to a proper java installation?" fi -JAVA_VERSION=`$JAVA -version 2>&1 | grep version | cut -d ' ' -f 3 | egrep '^\"1\.(6|7|8|9)'` -if [ -z "$JAVA_VERSION" ] ; then - error "OpenRefine requires Java version 6 or later. If you have multiple versions of Java installed, please set the environment variable JAVA_HOME to the correct version." -fi +checkJavaMajorVersion # ----- Parse the command line args ------------------------------------------