Почему maven игнорирует установленный мной JDK? - PullRequest
0 голосов
/ 06 мая 2020

Когда я что-то делаю с Maven (используя команду mvn), я получаю следующее сообщение:

Переменная среды JAVA_HOME определена неправильно. Эта переменная среды необходима для запуска этой программы NB: JAVA_HOME должен указывать на JDK, а не на JRE

java -version

возвращает следующее:

версия openjdk «1.8.0_212-1-ojdkbuild» Среда выполнения OpenJDK (сборка 1.8.0_212-1-ojdkbuild-b04) 64-разрядная серверная виртуальная машина OpenJDK (сборка 25.212-b04, смешанный режим)

Мой JAVA_HOME указывает на папку bin этого JDK. В моей переменной PATH также есть такая же папка bin.

Мой вопрос: что я делаю не так? Не следует ли java -version говорить «Комплект разработчика» вместо «Среда выполнения»?

Ответы [ 4 ]

2 голосов
/ 06 мая 2020

Я не думаю, что мы будем решать, в чем проблема, задавая вам вопросы. Вместо этого я предлагаю вам сделать следующее:

  1. В командной строке установите для переменной среды %MAVEN_BATCH_ECHO% значение on. Затем в той же командной строке запустите mvn. Это должно отображать все команды, выполняемые командным файлом mvn.cmd.

  2. Сравните вывод с источником командного файла ... установленным в вашей системе. В частности, посмотрите, что отображается для этих строк:

    @REM ==== START VALIDATION ====
    if not "%JAVA_HOME%"=="" goto OkJHome
    for %%i in (java.exe) do set "JAVACMD=%%~$PATH:i"
    goto checkJCmd
    
    :OkJHome
    set "JAVACMD=%JAVA_HOME%\bin\java.exe"
    
    :checkJCmd
    if exist "%JAVACMD%" goto chkMHome
    
    echo The JAVA_HOME environment variable is not defined correctly >&2
    echo This environment variable is needed to run this program >&2
    echo NB: JAVA_HOME should point to a JDK not a JRE >&2
    goto error
    

    (Обратите внимание, что приведенный выше отрывок взят из самой последней версии пакетного файла Maven. Возможно, у вас более старая версия Maven. это что-то другое. Проверьте это, прежде чем делать выводы.)

  3. Если это не сработает, измените командный файл и добавьте строку в echo, что установлено %JAVA_CMD% к. Затем запустите измененный командный файл.

Обратите внимание, что проверка на самом деле проверяет, существует ли %JAVA_CMD% как файл.


Я вижу, вы действительно решили проблема при переустановке. К сожалению, это не говорит нам, в чем проблема на самом деле.

1 голос
/ 06 мая 2020

Кажется, вы установили JDK под C:\Program Files\..., и поэтому вам нужно указать абсолютный путь в обеих переменных среды, JAVA_HOME и PATH, т.е. не устанавливайте %JAVA_HOME%\bin в PATH; вместо этого установите C:\Program Files\...\bin в PATH переменной среды.

Кроме того, убедитесь, что путь, указанный в JAVA_HOME, на один уровень выше пути, установленного в переменной PATH.

Last но не в последнюю очередь, убедитесь, что вы переместили путь этого JDK выше всех значений в PATH, что гарантирует, что путь другого JDK не будет иметь прецедент над JDK, с которым вы хотите работать.

1 голос
/ 06 мая 2020

JAVA_HOME должно относиться к папке, в которой находится папка bin, но я думаю, что вы установили java без jdk, запустите javac -version, вы увидите, доступен ли компилятор.

Возможно вам стоит установить пакет openjdk-8-jdk, но у вас только openjdk-8-jre. Это имена пакетов ubuntu. Имя может быть другим в зависимости от вашей ОС.

0 голосов
/ 06 мая 2020

После удаления всего и очистки каталогов и перезагрузки компьютера. Я все переустановил. В системных переменных PATH установлен на java путь + / bin, а в JAVA_HOME это просто путь к папке. MAven снова в рабочем состоянии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...