Search code examples
javamavenpathjava-home

JAVA_HOME not appearing and MAVEN_HOME is not set correctly


I installed OpenJDK 12 by adding the /bin to the PATH and making a JAVA_HOME without the /bin.

Proof that this works :

  C:\Users\rakoo>java -version
  openjdk version "12.0.1" 2019-04-16
  OpenJDK Runtime Environment (build 12.0.1+12)
  OpenJDK 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)

  C:\Users\rakoo>javac -version
  javac 12.0.1

  C:\Users\rakoo>echo %JAVA_HOME%
  C:\Program Files\Java\jdk-12.0.1

The problem is what I get when I type mvn -v in cmd.

 Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04- 
 04T21:00:29+02:00)
 Maven home: C:\Program Files\apache-maven-3.6.1\bin\..
 Java version: 12.0.1, vendor: Oracle Corporation, runtime: C:\Program 
 Files\Java\jdk-12.0.1
 Default locale: en_US, platform encoding: Cp1252
 OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

As you can see, there is no "Java home: " and the maven home is set incorrectly. I made system variable called MAVEN_HOME with the value set to C:\Program Files\apache-maven-3.6.1.

Proof that MAVEN_HOME is set:

C:\Users\rakoo>echo %MAVEN_HOME%
C:\Program Files\apache-maven-3.6.1

Screenshots of my Path and system variables.

How do I go about fixing this?


Solution

  • In Maven version 3.6.1 they have removed the "JAVA HOME" property from maven output for the version command(mvn -v) but that should not pose any problem as such. You can refer to CLIReportingUtils.showVersion() method in below link:

    https://github.com/apache/maven/blob/maven-3.6.1/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java

    public static String showVersion()
    {
        final String ls = System.getProperty( "line.separator" );
        Properties properties = getBuildProperties();
        StringBuilder version = new StringBuilder( 256 );
        version.append( buffer().strong( createMavenVersionString( properties ) ) ).append( ls );
        version.append( reduce(
            properties.getProperty( "distributionShortName" ) + " home: " + System.getProperty( "maven.home",
                                                                                                "<unknown Maven "
                                                                                                    + "home>" ) ) )
            .append( ls );
        version.append( "Java version: " ).append(
            System.getProperty( "java.version", "<unknown Java version>" ) ).append( ", vendor: " ).append(
            System.getProperty( "java.vendor", "<unknown vendor>" ) ).append( ", runtime: " ).append(
            System.getProperty( "java.home", "<unknown runtime>" ) ).append( ls );
        version.append( "Default locale: " ).append( Locale.getDefault() ).append( ", platform encoding: " ).append(
            System.getProperty( "file.encoding", "<unknown encoding>" ) ).append( ls );
        version.append( "OS name: \"" ).append( Os.OS_NAME ).append( "\", version: \"" ).append( Os.OS_VERSION ).append(
            "\", arch: \"" ).append( Os.OS_ARCH ).append( "\", family: \"" ).append( Os.OS_FAMILY ).append( '\"' );
        return version.toString();
    }