[ https://issues.apache.org/jira/browse/MNG-5756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15068967#comment-15068967 ]
Michael Osipov edited comment on MNG-5756 at 12/23/15 12:48 AM: ---------------------------------------------------------------- Just a note: with Java 9 this will be completely irrelevant, see [slides|http://openjdk.java.net/projects/jigsaw/talks/prepare-for-jdk9-j1-2015.pdf] 29, 30. You won't see any difference. was (Author: michael-o): Just a note: with Java 9 this will be completely irrelevant, see [http://openjdk.java.net/projects/jigsaw/talks/prepare-for-jdk9-j1-2015.pdf|slides] 29, 30. You won't see any difference. > Java home output in mvn -v is misleading > ---------------------------------------- > > Key: MNG-5756 > URL: https://issues.apache.org/jira/browse/MNG-5756 > Project: Maven > Issue Type: Improvement > Components: Command Line > Affects Versions: 3.2.5, 3.3.3 > Environment: any > Reporter: Jarkko Rantavuori > Priority: Minor > > For example on my windows box, mvn -v prints the following: > {code} > Java home: C:\Program Files (x86)\Java\jdk1.7.0_51\jre > {code} > But my JAVA_HOME is actually > {code} > > echo %JAVA_HOME% > C:\Program Files (x86)\Java\jdk1.7.0_51 > {code} > In the source code, the line comes from: > https://git-wip-us.apache.org/repos/asf?p=maven.git;a=blob;f=maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java#l63 > {code} > version.append( "Java home: " ).append( System.getProperty( "java.home", > "<unknown java home>" ) ).append( ls ); > {code} > which is using property "java.home" to fetch java home. However, "java.home" > property is not JAVA_HOME! This is explained in detail in here: > http://javahowto.blogspot.fi/2006/05/javahome-vs-javahome.html > To quote: > {quote} > What's the difference between JAVA_HOME and java.home? > JAVA_HOME is the JDK install directory, e.g., C:\jdk5. It's meant to be > set as an environment variable and referenced in Windows batch files or Unix > scripts. I always have it in my Windows Control Panel and .tcsh files,along > with other common environment variables. Some Java applications use the name > jdk.home for this purpose, which I think is a better name. But JAVA_HOME has > been used since the beginning and is now a convention. > java.home is the JRE install directory, e.g., C:\jdk5\jre, or C:\Program > Files\Java\jre1.5.0_06. Unlike JAVA_HOME, I never seen java.home as an > environment variable. java.home is a build-in Java system property, whose > value is the JRE install directory. Since all Java system properties are also > exposed as Ant build properties, you can also use ${java.home} in > build files. > Would jre.home be a better name? Maybe, but I don't think Sun will change > it. > {quote} > This is a source of constant confusion. Some stackoverflow threads to > illustrate: > http://stackoverflow.com/questions/15279586/java-home-in-maven > http://stackoverflow.com/questions/17620531/maven-pointing-to-jre-instead-of-jdk > The correct way to print JAVA_HOME would be to use > System.getenv("JAVA_HOME"). Either that should be used or current output > should be changed so it wouldn't be so misleading. -- This message was sent by Atlassian JIRA (v6.3.4#6332)