Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Won't Fix
-
5.1.1
-
None
-
None
Description
`cordova requirements android` fails on a system with Java 9(-ea) installed and accessible via PATH/JAVA_HOME:
$ cordova requirements android Requirements check results for android: Java JDK: not installed Cannot read property '1' of null Android SDK: installed Android target: installed android-17,android-18,android-19,android-21,android-22,android-23,android-N Gradle: installed Error: Some of requirements check failed $ echo $PATH /usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/andreas/.local/bin:/home/andreas/bin:/usr/java/jdk-9/bin:/home/andreas/modules/apache-maven/bin:/home/andreas/modules/apache-ant/bin:/home/andreas/modules/mongodb/bin:/home/andreas/modules/node/bin:/home/andreas/modules/android-sdk-linux/tools:/home/andreas/modules/android-sdk-linux/platform-tools $ which javac /usr/java/jdk-9/bin/javac $ echo $JAVA_HOME /usr/java/jdk-9 $ javac -version javac 9-ea $ java -version java version "9-ea" Java(TM) SE Runtime Environment (build 9-ea+120) Java HotSpot(TM) 64-Bit Server VM (build 9-ea+120, mixed mode)
The exception is caused by the regular expression magic in check_reqs.js, `check_java` function:
var match = /javac ((?:\d+\.)+(?:\d+))/i.exec(output)[1];
(5.2.0-dev is slightly different, but has the same issue).
I think the easiest fix here is to change the expression to this:
var match = /javac ((?:\d+\.)*(?:\d+))/i.exec(output)[1];
Attachments
Issue Links
- is duplicated by
-
CB-13379 Cordova build don't recognize jdk9 > jdk 1.8
- Closed
- links to