Fix java version detection in bash script

`java -version` can include an extra line of output
if `_JAVA_OPTTIONS` is set.

This commit adds a grep step before sed to harden
against this possibility.

Before:
```
 (export _JAVA_OPTIONS=-Dfoo.bar; java -version 2>&1 | sed 's/.*version "\([0-9]*\)\(\.[0-9]*\)\{0,1\}\(.*\)*"/\1\2/; 1q')
Picked up _JAVA_OPTIONS: -Dfoo.bar
```

After:
```
 (export _JAVA_OPTIONS=-Dfoo.bar; java -version 2>&1 | grep ' version "' | sed 's/.*version "\([0-9]*\)\(\.[0-9]*\)\{0,1\}\(.*\)*"/\1\2/; 1q')
1.8
```
This commit is contained in:
Jason Zaugg 2017-07-26 14:57:58 +10:00
parent 80e8abc22d
commit c487e3166e
1 changed files with 4 additions and 4 deletions

View File

@ -165,7 +165,7 @@ process_args () {
} }
## parses 1.7, 1.8, 9, etc out of java version "1.8.0_91" ## parses 1.7, 1.8, 9, etc out of java version "1.8.0_91"
java_version=$("$java_cmd" -Xmx512M -version 2>&1 | sed 's/.*version "\([0-9]*\)\(\.[0-9]*\)\{0,1\}\(.*\)*"/\1\2/; 1q') java_version=$("$java_cmd" -Xmx512M -version 2>&1 | grep ' version "' | sed 's/.*version "\([0-9]*\)\(\.[0-9]*\)\{0,1\}\(.*\)*"/\1\2/; 1q')
vlog "[process_args] java_version = '$java_version'" vlog "[process_args] java_version = '$java_version'"
} }