Java z maven nie buduje się: nie można uruchomić programu „cmd” „Źle sformułowany argument ma osadzony cytat”

20

Mam świeżą instalację Netbean 11.1. Teraz próbuję zbudować projekt, ale otrzymuję następujący komunikat o błędzie:

Nie można uruchomić programu „cmd” (w katalogu „C: \ projects \ open”): źle sformułowany argument ma osadzony cytat: „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

Wcześniej budowałem ten projekt za pomocą Netbeans 11.1, ale mam nowy komputer. i świeżą instalację, ale jestem pewien, że nie było problemu, kiedy ostatnio próbowałem zainstalować wszystko.

pracowita pszczółka
źródło

Odpowiedzi:

13

Chociaż ten problem można rozwiązać, instalując jdk1.8.0_221, ale tak naprawdę nie trzeba obniżać wersji JDK. Po prostu spróbuj tych:

  1. Najpierw zamknij IDE netbeans, jeśli jest otwarty, a następnie otwórz plik konfiguracyjny netbeans stąd: netbeans-Install-Dir / etc / netbeans.conf (Uwaga: dla mnie netbeans-Install-Dir to C: \ Program Files \ NetBeans 8.2 \ etc)
  2. Dodaj poniższe argumenty
-J-Djdk.lang.Process.allowAmbiguousCommands=true
  1. na początku ciągu, który znajdziesz w tym wierszu:
netbeans_default_options="-J-client -J-Xss2m -J-Xms32m ......."

Przykładowy zrzut ekranu, jak pokazano poniżej: 4. Zapisz zmianę i uruchom IDE netbeans.wprowadź opis zdjęcia tutaj

Ali Safari
źródło
To powinna być zaakceptowana odpowiedź
ryvantage
to działa, wielkie dzięki!
Miguel Rodríguez
53

Sprawdziłem informacje o wersji dla JDK 13.0.1 na https://www.oracle.com/technetwork/java/javase/13-0-1-relnotes-5592797.html#JDK-8221858

To zachowanie jest regresją z poprawki zabezpieczeń dla JDK-8221858 (niepubliczna). Kliknij link, aby uzyskać pełny opis. Poprawka jest częścią JDK 8u231, JDk 11.0.5, 13.0.1 itd.

Aby rozwiązać ten problem, dołącz -J-Djdk.lang.Process.allowAmbiguousCommands=truedo netbeans_default_optionsw <netbeans-dir>\etc\netbeans.conf.

Sefirot
źródło
1
Programiści Netbeans wybrali ten i inne ostatnie raporty o problemach, aw najnowszej wersji programistycznej (która będzie 11.2) zastosowano tę poprawkę, patrz lists.apache.org/thread.html/...
Peter Hull
7

Czy przypadkiem zainstalowałeś najnowszą krytyczną aktualizację dla Java? jdk 1.7_241? Zainstalowałem to dzisiaj i miałem dokładnie ten sam problem. Obniżyłem wersję mojej jdk i całkowicie ją rozwiązałem.

EDYCJA: Przepraszam, zauważyłem, że używasz Netbeans 11.1, więc prawdopodobnie masz późniejszą wersję Java, w każdym razie możesz spróbować obniżyć swoją wersję Java do poprzedniej wersji, jeśli zdarzyło Ci się ją zaktualizować dzisiaj, ponieważ inna wersja może mieć taki sam problem.

angusg96
źródło
2
instalacja jdk1.8.0_221 rozwiązała to
zajętyBe
Obniżenie JDK nie jest idealnym rozwiązaniem. Lepsza opcja polegająca na edycji pliku netbeans.conf znajduje się poniżej.
ryvantage
5

W chwili pisania tego artykułu zainstalowałem tylko JDK13 tylko na moim komputerze. Po rozpakowaniu moich netbeansów mam ten sam problem z wewnętrznym mavem moich netbeansów 11.1.

Najwyraźniej netbeans 11.1 nie działa poprawnie z JDK13. Właśnie zainstalowałem JDK 8 i problem został rozwiązany, bez dodatkowej konfiguracji lub zmiany parametrów.

Niemniej jednak, ponieważ potrzebuję JDK13, mam oba zainstalowane, ale mój plik netbeans.conf wskazuje JDK8. Później możesz zdefiniować nową platformę Java w konfiguracji projektu Netbeans.

Mam nadzieję, że to może pomóc.

Twoje zdrowie!

Marcello
źródło
1
to samo dotyczy jdk-11.0.5
busyBee
5

Miałem ten błąd z adopt8-hotspot (AdoptOpenJDK-1.8.0_232-b09)i sbt-0.13.Xdo starego projektu.

Problem rozwiązany po ustawieniu zmiennej środowiskowej w systemie Windows za pośrednictwem

set JAVA_TOOL_OPTIONS=-Djdk.lang.Process.allowAmbiguousCommands=true
raisercostin
źródło
1

Wydaje się, że dzieje się tak ze wszystkimi ostatnio wydanymi wersjami jdk (przynajmniej 11.0.5 i 13.0.1), nawet z najnowszymi wersjami Netbeans 11.2vc1 (a także w przypadku NB 11.1). Zmień jdk na wersję 11.0.4 lub 13.0.0. Naprawiłem problem

Pierre Maréchal
źródło
1

Problem występuje również w wersji jdk-8u231. Naprawianie instalacji wersji jdk-8u221

Felipe Moreira Jorge
źródło
0

Apache NetBeans 11.1 w rzeczywistości nie obsługuje JDK 13, właśnie do tego nadchodzi Apache NetBeans 11.2 - najnowsza wersja beta: bit.ly/apache-netbeans-11-2-beta-3

Geertjan Wielenga
źródło
0

po prostu dodaj -J-Djdk.lang.Process.allowAmbiguousCommands = true do netbeans_default_options w netbeans.conf

Ahmad Haj Abdulla
źródło