【问题标题】:JAVA_HOME not appearing and MAVEN_HOME is not set correctlyJAVA_HOME 未出现且 MAVEN_HOME 设置不正确
【发布时间】:2019-09-16 01:32:07
【问题描述】:

我通过将 /bin 添加到 PATH 并制作没有 /bin 的 JAVA_HOME 来安装 OpenJDK 12。

证明这是有效的:

  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

问题是我在 cmd 中键入 mvn -v 时得到的结果。

 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"

如您所见,没有“Java home:”,并且 maven home 设置不正确。我创建了名为 MAVEN_HOME 的系统变量,其值设置为 C:\Program Files\apache-maven-3.6.1。

证明 MAVEN_HOME 已设置:

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

Screenshots 我的路径和系统变量。

我该如何解决这个问题?

【问题讨论】:

  • maven 只是从环境变量中获取 java 。 MVN -V 确实显示了 java 运行时,但它没有在 mvn -v commnad 中显示 %JAVA_HOME%
  • 在路径变量中添加 mvn 和 java 作为 %JAVA_HOME%\bin 和 %MAVEN_HOME%\bin
  • @MuhammadAhmed 在 Maven 上 website,mvn -v 显示 Java 主页。
  • @MuhammadAhmed 我试过了,还是有同样的问题。
  • imgur.com/a/TIuJz1U 这是我的 mvn -v 截图。它也不显示 JAVA_HOME 。但对我来说,maven 工作得很好

标签: java maven path java-home


【解决方案1】:

您的问题分为两部分:

  1. “maven home 设置不正确” - 不,不是。

命令mvn -v 的输出将MAVEN HOME 显示为Maven home: C:\Program Files\apache-maven-3.6.1\bin\..。注意末尾的 ..。这意味着比当前级别高 1 个目录,即 bin,实际上等于您设置的 C:\Program Files\apache-maven-3.6.1

  1. 没有“Java 主页:” - maven 输出并不总是显示 JAVA 主页。所以应该没问题。

我还看到 java 运行时的路径不正确。你检查过你的jdk文件夹吗?是否已正确下载?它是否包含 jre 文件夹? 在我的情况下,运行时值显示:<...>/jdk_1.8/jre

编辑:

根据this link,从 JDK 11 开始,一个单独的 JRE 已被删除。另外,请参见下面的屏幕截图。在上半部分(红线上方),java 设置为 jdk 12(从您提供的链接下载),在mvn -v 输出中仍然可以看到 JAVA_HOME。我看到的唯一区别是您的 Maven 版本不同。你可以用 maven 3.5.3 试一次吗?

【讨论】:

  • 感谢您的回复!它没有 jre 文件夹。我尝试从这个link 下载 JDK 12,但仍然没有 jre 文件夹。
  • 我检查了这个链接:reddit.com/r/java/comments/9ualdq/…,它提到从 jdk 11 开始已经删除了一个单独的 jre。此外,Oracle jdk 已从免费许可转变为付费许可。根据您的要求,您可以选择 openJdk(我猜它也没有单独的 JRE)
【解决方案2】:

在 Maven 版本 3.6.1 中,他们从版本命令 (mvn -v) 的 Maven 输出中删除了“JAVA HOME”属性,但这不应该造成任何问题。您可以参考以下链接中的 CLIReportingUtils.showVersion() 方法:

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();
}

【讨论】:

  • Maven 非常适合我。我只是担心,因为它没有显示,谢谢你清除它。
猜你喜欢
  • 2013-03-20
  • 2020-12-21
  • 2020-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-27
  • 1970-01-01
相关资源
最近更新 更多