Since I haven't received any additional feedback, should I push this patch?
Op 27 aug. 2015 15:56 schreef i...@cuhka.com: > > I've adapted the build.gradle to use java -fullversion instead of java > -version, parsing the result with a regexp. > > diff -r 9b5fc7c1e5e6 build.gradle > --- a/build.gradle Fri Aug 07 18:35:42 2015 -0700 > +++ b/build.gradle Thu Aug 27 15:52:11 2015 +0200 > @@ -719,29 +719,27 @@ > if (!file(JAVAH).exists()) throw new Exception("Missing or incorrect > path to 'javah': '$JAVAH'. Perhaps bad JDK_HOME? $JDK_HOME") > if (!file(JAVADOC).exists()) throw new Exception("Missing or > incorrect path to 'javadoc': '$JAVADOC'. Perhaps bad JDK_HOME? > $JDK_HOME") > > - > + > // Determine the verion of Java in JDK_HOME. It looks like this: > // > -// $ java -version > -// java version "1.7.0_45" > -// Java(TM) SE Runtime Environment (build 1.7.0_45-b18) > -// Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) > -// > -// We need to parse the second line > -def inStream = new java.io.BufferedReader(new > java.io.InputStreamReader(new java.lang.ProcessBuilder(JAVA, > "-version").start().getErrorStream())); > +// $ java -fullversion > +// for OpenJDK: openjdk full version "1.8.0_45-internal-b14" > +// for Oracle JDK: java full version "1.8.0_45-b14" > + > +def inStream = new java.io.BufferedReader(new > java.io.InputStreamReader(new java.lang.ProcessBuilder(JAVA, > "-fullversion").start().getErrorStream())); > try { > - if (inStream.readLine() != null) { > - String v = inStream.readLine(); > - if (v != null) { > - int ib = v.indexOf(" (build "); > - if (ib != -1) { > - String ver = v.substring(ib + 8, v.size() - 1); > - > - defineProperty("jdkRuntimeVersion", ver) > - defineProperty("jdkVersion", > jdkRuntimeVersion.split("-")[0]) > - defineProperty("jdkBuildNumber", > jdkRuntimeVersion.substring(jdkRuntimeVersion.lastIndexOf("-b") + 2)) > - } > - } > + def v = inStream.readLine(); > + > + if (v != null) { > + def pattern = > java.util.regex.Pattern.compile("^[^\"]*\"((\\d+(?:\\.\\d+)*)_(\\d+))(?:-\\w+)?(?:-b(\\d+))\"\$") > > + def matcher = pattern.matcher(v) > + > + if (matcher.matches()) { > + defineProperty("jdkVersion", matcher.group(1)) > + defineProperty("jdkRuntimeVersion", matcher.group(2)) > + defineProperty("jdkUpdate", matcher.group(3)) > + defineProperty("jdkBuildNumber", matcher.group(4)) > + } > } > } finally { > inStream.close(); >