[ 
https://jira.codehaus.org/browse/MNG-5756?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jarkko Rantavuori updated MNG-5756:
-----------------------------------

    Description: 
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.

  was:
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
{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.


> Java home output in mvn -v is misleading
> ----------------------------------------
>
>                 Key: MNG-5756
>                 URL: https://jira.codehaus.org/browse/MNG-5756
>             Project: Maven
>          Issue Type: Improvement
>          Components: Command Line
>    Affects Versions: 3.2.5
>         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.1.6#6162)

Reply via email to