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() )