maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jarkko Rantavuori (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (MNG-5756) Java home output in mvn -v is misleading
Date Thu, 08 Oct 2015 16:23:26 GMT

    [ 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 $&lcub;java.home&rcub;
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)

Mime
View raw message