繁体   English   中英

JAVA_HOME没有出现,MAVEN_HOME设置不正确

[英]JAVA_HOME not appearing and MAVEN_HOME is not set correctly

我通过将/ 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

我的路径和系统变量的屏幕截图

我该如何解决这个问题?

你的问题有两个部分:

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

输出命令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 home:” - maven输出并不总是显示JAVA主页。 所以它应该不是问题。

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

编辑:

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

在此输入图像描述

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM