Java с maven не будет собираться: не удается запустить программу «cmd» «Неправильный аргумент имеет встроенную кавычку»

20

У меня свежая установка netbean 11.1. Сейчас я пытаюсь построить проект, но я получаю следующее сообщение об ошибке:

Невозможно запустить программу "cmd" (в каталоге "C: \ projects \ open"): неверный аргумент имеет встроенную цитату: "C: \ Program Files \ NetBeans-11.1 \ netbeans \ java \ maven \ bin \ mvn.cmd"

cd C:\projects\open; "JAVA_HOME=C:\\Program Files\\Java\\jdk-11.0.5" cmd /c "\"\"C:\\Program Files\\NetBeans-11.1\\netbeans\\java\\maven\\bin\\mvn.cmd\" -DskipTests=true -Dmaven.ext.class.path=\"C:\\Program Files\\NetBeans-11.1\\netbeans\\java\\maven-nblib\\netbeans-eventspy.jar\" -Dfile.encoding=UTF-8 clean install\"" Cannot run program "cmd" (in directory "C:\projects\open"): Malformed argument has embedded quote: "C:\Program Files\NetBeans-11.1\netbeans\java\maven\bin\mvn.cmd" -DskipTests=true -Dmaven.ext.class.path="C:\Program Files\NetBeans-11.1\netbeans\java\maven-nblib\netbeans-eventspy.jar" -Dfile.encoding=UTF-8 clean install

Я построил этот проект с NetBeans 11.1 раньше, но у меня есть новый компьютер. и новая установка, хотя я уверен, что не было никаких проблем в прошлый раз, когда я пытался установить все.

работящая пчелка
источник

Ответы:

14

Хотя эту проблему можно решить, установив jdk1.8.0_221, но на самом деле вам не нужно понижать версию JDK. Просто попробуйте это:

  1. Сначала выйдите из IDE netbeans, если он открыт, затем откройте файл конфигурации netbeans здесь: netbeans-Install-Dir / etc / netbeans.conf (Примечание: для меня netbeans-Install-Dir - это C: \ Program Files \ NetBeans 8.2 \ etc)
  2. Добавьте ниже аргументы
-J-Djdk.lang.Process.allowAmbiguousCommands=true
  1. в начало строки, которую вы найдете в этой строке:
netbeans_default_options="-J-client -J-Xss2m -J-Xms32m ......."

Пример снимка экрана, как показано ниже: 4. Сохраните изменения и запустите среду IDE NetBeans.введите описание изображения здесь

Али Сафари
источник
Это должен быть принятый ответ
ryvantage
это работает, спасибо большое!
Мигель Родригес
53

Я проверил примечания к выпуску JDK 13.0.1 по адресу https://www.oracle.com/technetwork/java/javase/13-0-1-relnotes-5592797.html#JDK-8221858.

Это поведение является регрессом из исправления безопасности для JDK-8221858 (не публично). Перейдите по ссылке для полного описания. Исправление является частью JDK 8u231, JDk 11.0.5, 13.0.1 и т. Д.

Чтобы решить эту проблему, добавьте -J-Djdk.lang.Process.allowAmbiguousCommands=trueк netbeans_default_optionsв <netbeans-dir>\etc\netbeans.conf.

Sephiroth
источник
1
Разработчики Netbeans воспользовались этим и другими недавними сообщениями о проблемах, и в последней версии разработки (которая будет 11.2) применено это исправление, см. Lists.apache.org/thread.html/…
Питер Халл,
7

Вы случайно не установили последнее критическое обновление для Java? JDK 1,77241? Я установил это сегодня и у меня точно такая же проблема. Я понизил версию JDK, и она полностью ее решила.

РЕДАКТИРОВАТЬ: Извинения, я заметил, что вы используете NetBeans 11.1, поэтому у вас, вероятно, есть более поздняя версия Java, в любом случае, вы можете попробовать понизить версию Java до предыдущего выпуска, если вы обновили ее сегодня, так как другая версия может иметь та же проблема.

angusg96
источник
2
установка jdk1.8.0_221 решила это
занятыBee
Понижение JDK не является идеальным решением. Лучший вариант, включающий редактирование файла netbeans.conf, приведен ниже.
ryvantage
5

На момент написания статьи на моем компьютере был установлен только JDK13. После распаковки моего netbeans у меня та же проблема с внутренним maven моего netbeans 11.1.

Очевидно, NetBeans 11.1 не работает должным образом с JDK13. Я только что установил JDK 8, и теперь проблема решена без каких-либо дополнительных настроек или изменений параметров.

Тем не менее, поскольку мне нужен JDK13, я установил оба, но мой файл netbeans.conf указывает на JDK8. Позже вы можете определить новую платформу Java в конфигурации проекта NetBeans.

Я надеюсь, что это может помочь.

Ура!

Марчелло
источник
1
то же самое касается jdk-11.0.5
busyBee
5

У меня была эта ошибка с adopt8-hotspot (AdoptOpenJDK-1.8.0_232-b09)и sbt-0.13.Xдля старого проекта.

Проблема решена после установки переменной среды в Windows через

set JAVA_TOOL_OPTIONS=-Djdk.lang.Process.allowAmbiguousCommands=true
raisercostin
источник
1

Похоже, это происходит со всеми недавно выпущенными версиями jdk (по крайней мере, 11.0.5 и 13.0.1), даже с последними версиями Netbeans 11.2vc1 (и также замеченными на NB 11.1). Понизьте ваш jdk до 11.0.4 или 13.0.0. Это исправило проблему для меня

Пьер Марешаль
источник
1

Проблема также возникает в версии jdk-8u231. Исправление установки версии jdk-8u221

Фелипе Морейра Хорхе
источник
0

Apache NetBeans 11.1 действительно не поддерживает JDK 13, для этого и предназначен новый Apache NetBeans 11.2 - последняя бета-версия: bit.ly/apache-netbeans-11-2-beta-3

Гертьян Виленга
источник
0

У меня была такая же проблема с oracle jdk 13.0.1 и netbeans 11.1, но у меня это работало с openjdk 13.0.1 ( https://jdk.java.net/13/ ).

govojo
источник
0

просто добавьте -J-Djdk.lang.Process.allowAmbiguousCommands = true к netbeans_default_options в netbeans.conf

Ахмад Хадж Абдулла
источник