[ https://issues.apache.org/jira/browse/MNG-5756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14948935#comment-14948935 ]
Jarkko Rantavuori edited comment on MNG-5756 at 10/8/15 4:23 PM: ----------------------------------------------------------------- {quote}System.getProperty( "java.home", "<unknown java home>" ) this is correct. Though it is confusing.{quote} Well, I just don't agree. Maven shouldn't be saying things about "java home" or "Java home" when it is actually referring to "java.home". I don't think you disagree about the statement that normally when anybody in java ecosystem is talking about java home, they refer to JAVA_HOME environment setting. Given that, if output of a program is meaning something else with it, it would be the fault of that program - in this case Maven. This has been evident with tens of users tripping on this on stackoverflow. {quote}JAVA_HOME != java.home.{quote} Yes. And {{java.home}} != {{java home}}. But "java home", if that term is to be used, really should refer to JAVA_HOME. was (Author: jarkkor): {quote}System.getProperty( "java.home", "<unknown java home>" ) this is correct. Though it is confusing.{quote} Well, I just don't agree. Maven shouldn't be saying things about "java home" or "Java home" when it is actually referring to "java.home". I don't think you disagree about the statement that normally when anybody in java ecosystem is talking about java home, they refer to JAVA_HOME environment setting. Given that, if output of a program is meaning something else with it, it would be the fault of that program - in this case Maven. This has been evident with tens of users tripping on this on stackoverflow. {quote}JAVA_HOME != java.home.{quote} Yes. And {noformat}java.home{noformat} != {noformat}java home{noformat}. But "java home", if that term is to be used, really should refer to JAVA_HOME. > 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)