diff --git a/gradle/java.gradle b/gradle/java.gradle index 103544c195..952ec7bcee 100644 --- a/gradle/java.gradle +++ b/gradle/java.gradle @@ -234,14 +234,19 @@ JavaVersion getJavaExecutableVersion(String path) { commandLine = [path, "-version"] errorOutput = stream } - def matcher = stream.toString() =~ /^(?:java|openjdk) version "([^"]+)"/ - if (matcher) { - def version = JavaVersion.toVersion(matcher.group(1)) - cache.put(path, version) - return version - } else { - throw new GradleScriptException("Cannot determine java version: ${stream.toString}") + def output = stream.toString() + for (def line : output.split('\n')) { + line = line.trim() + def matcher = line =~ /^(?:java|openjdk) version "([^"]+)"/ + if (matcher) { + def version = JavaVersion.toVersion(matcher.group(1)) + cache.put(path, version) + return version + } } + + // Getting here means we didn't find a line matching the version pattern. + throw new GradleScriptException("Cannot determine java version. Executable: ${path}, output: ${output}", null) } }