JAVA_HOME не отображается, а MAVEN_HOME установлен неправильно - PullRequest
1 голос
/ 26 апреля 2019

Я установил OpenJDK 12, добавив / bin к PATH и сделав JAVA_HOME без / bin.

Доказательство того, что это работает:

  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

Проблема в том, что я получаю, когда набираю mvn -v в cmd.

 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

Снимки экрана моих переменных пути и системных переменных.

Как мне исправить это?

Ответы [ 2 ]

2 голосов
/ 28 апреля 2019

Ваш вопрос состоит из 2 частей:

  1. "дом maven установлен неправильно" - Нет. Это не так.

Вывод командыmvn -v показывает MAVEN HOME как Maven home: C:\Program Files\apache-maven-3.6.1\bin\...Обратите внимание на .. в конце.Это означает, что 1 dir выше текущего уровня, то есть bin, который фактически равен C:\Program Files\apache-maven-3.6.1, что вы и задали.

нет "Java home:" - вывод maven не всегда показывает JAVA home.Так что это не должно быть проблемой.

Также я вижу неправильный путь времени выполнения Java.Вы проверили свою папку JDK.Был правильно загружен?Содержит ли он папку jre?В моем случае значение времени выполнения показывает: <...>/jdk_1.8/jre

РЕДАКТИРОВАТЬ:

Согласно этой ссылке , отдельная JRE была удалена JDK 11 и далее,Также смотрите скриншот ниже.В верхней половине (над красной линией) для java установлено значение jdk 12 (загружено по предоставленной вами ссылке), а JAVA_HOME все еще отображается в выводе mvn -v.Единственное отличие, которое я вижу, в том, что ваша версия Maven отличаетсяМожете ли вы попробовать один раз с Maven 3.5.3?

enter image description here

1 голос
/ 03 мая 2019

В версии Maven 3.6.1 они удалили свойство «JAVA HOME» из вывода maven для команды версии (mvn -v), но это не должно создавать никаких проблем.Вы можете обратиться к методу 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();
}
...