unittest should prefer JAVA_HOME when executing from cmdline
When running with Java9+ no need to switch from jre to jdk directory (jep220)

git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@1816950 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java b/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
index 90c5e84..4dc7631 100644
--- a/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
+++ b/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/JavadocUtil.java
@@ -1277,14 +1277,22 @@
      */

     private static File getJavaHome( Log log )

     {

-        File javaHome;

-        if ( SystemUtils.IS_OS_MAC_OSX )

+        File javaHome = null;

+

+        // if maven.home is set, we can assume JAVA_HOME must be used for testing

+        

+        if ( System.getProperty( "maven.home" ) == null )

         {

-            javaHome = SystemUtils.getJavaHome();

-        }

-        else

-        {

-            javaHome = new File( SystemUtils.getJavaHome(), ".." );

+            // JEP220 (Java9) restructured the JRE/JDK runtime image

+            if ( ( SystemUtils.IS_OS_MAC_OSX

+                || JavadocVersion.parse( SystemUtils.JAVA_VERSION ).compareTo( JavadocVersion.parse( "9" ) ) >= 0 ) )

+            {

+                javaHome = SystemUtils.getJavaHome();

+            }

+            else

+            {

+                javaHome = new File( SystemUtils.getJavaHome(), ".." );

+            }            

         }

 

         if ( javaHome == null || !javaHome.exists() )