Java mit Maven würde nicht erstellt: Programm "cmd" kann nicht ausgeführt werden "Fehlgebildetes Argument hat Anführungszeichen eingebettet"

20

Ich habe eine Neuinstallation von NetBean 11.1. Jetzt versuche ich ein Projekt zu erstellen, erhalte aber die folgende Fehlerausgabe:

Programm "cmd" kann nicht ausgeführt werden (im Verzeichnis "C: \ projects \ open"): Das fehlerhafte Argument enthält ein eingebettetes Zitat: "C: \ Programme \ 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

Ich habe dieses Projekt bereits mit NetBeans 11.1 erstellt, habe aber einen neuen PC. und eine Neuinstallation, obwohl ich sicher bin, dass es beim letzten Versuch, alles zu installieren, kein Problem gab.

beschäftigte Biene
quelle

Antworten:

14

Dieses Problem kann zwar durch die Installation von jdk1.8.0_221 behoben werden, Sie müssen Ihr JDK jedoch nicht herunterstufen. Probieren Sie einfach diese aus:

  1. Beenden Sie zuerst die NetBeans-IDE, wenn sie geöffnet ist, und öffnen Sie dann die NetBeans-Konfigurationsdatei von hier aus: netbeans-Install-Dir / etc / netbeans.conf (Hinweis: Für mich ist netbeans-Install-Dir C: \ Programme \ NetBeans 8.2 \ etc)
  2. Fügen Sie die folgenden Argumente hinzu
-J-Djdk.lang.Process.allowAmbiguousCommands=true
  1. zum Anfang der Zeichenfolge, die Sie in dieser Zeile finden:
netbeans_default_options="-J-client -J-Xss2m -J-Xms32m ......."

Beispiel-Screenshot wie unten gezeigt: 4. Speichern Sie die Änderung und starten Sie Ihre NetBeans-IDE.Geben Sie hier die Bildbeschreibung ein

Ali Safari
quelle
Dies sollte die akzeptierte Antwort sein
ryvantage
es funktioniert, vielen Dank!
Miguel Rodríguez
53

Ich habe die Versionshinweise für JDK 13.0.1 unter https://www.oracle.com/technetwork/java/javase/13-0-1-relnotes-5592797.html#JDK-8221858 überprüft

Dieses Verhalten ist eine Regression eines Sicherheitsupdates für JDK-8221858 (nicht öffentlich). Folgen Sie dem Link für eine vollständige Beschreibung. Das Update ist Teil von JDK 8u231, JDk 11.0.5, 13.0.1 usw.

So beheben Sie dieses Problem, append -J-Djdk.lang.Process.allowAmbiguousCommands=truezu netbeans_default_optionsin <netbeans-dir>\etc\netbeans.conf.

Sephiroth
quelle
1
Die Netbeans-Entwickler haben diesen und andere aktuelle Problemberichte aufgegriffen, und in der neuesten Entwicklungsversion (Version 11.2) wurde dieses Update
Peter Hull,
7

Haben Sie zufällig das neueste wichtige Update für Java installiert? jdk 1.7_241? Ich habe das heute installiert und hatte genau das gleiche Problem. Ich habe meine JDK-Version heruntergestuft und sie vollständig gelöst.

BEARBEITEN: Entschuldigung, ich habe festgestellt, dass Sie NetBeans 11.1 verwenden, sodass Sie wahrscheinlich eine spätere Java-Version haben. In jedem Fall können Sie versuchen, Ihre Java-Version auf eine frühere Version herunterzustufen, wenn Sie sie heute aktualisieren, da die andere Version möglicherweise die hat gleiches Problem.

angusg96
quelle
2
Die Installation von jdk1.8.0_221 hat das Problem gelöst
BusyBee
Ein Downgrade des JDK ist keine ideale Lösung. Eine bessere Option zum Bearbeiten der Datei netbeans.conf finden Sie unten.
Ryvantage
5

Zum Zeitpunkt des Schreibens war nur JDK13 nur auf meinem Computer installiert. Nachdem ich meine Netbeans entpackt habe, habe ich das gleiche Problem mit dem internen Maven meiner Netbeans 11.1.

Anscheinend funktioniert NetBeans 11.1 mit dem JDK13 nicht richtig. Ich habe gerade das JDK 8 installiert und das Problem ist jetzt ohne zusätzliche Konfiguration oder Parameteränderung gelöst.

Da ich das JDK13 benötige, habe ich beide installiert, aber meine Datei netbeans.conf zeigt auf JDK8. Später können Sie die neue Java-Plattform in der NetBeans-Projektkonfiguration definieren.

Ich hoffe das könnte helfen.

Prost!

marcello
quelle
1
Gleiches gilt für JDK-11.0.5
BusyBee
5

Ich hatte diesen Fehler mit adopt8-hotspot (AdoptOpenJDK-1.8.0_232-b09)und sbt-0.13.Xfür ein altes Projekt.

Problem behoben, nachdem die Umgebungsvariable in Windows über gesetzt wurde

set JAVA_TOOL_OPTIONS=-Djdk.lang.Process.allowAmbiguousCommands=true
Rosercostin
quelle
1

Dies scheint bei allen kürzlich veröffentlichten JDK-Versionen (mindestens 11.0.5 und 13.0.1) der Fall zu sein, selbst bei den neuesten Netbeans 11.2vc1 (und auch bei NB 11.1). Downgraden Sie Ihr JDK auf 11.0.4 oder 13.0.0. Es hat das Problem für mich behoben

Pierre Maréchal
quelle
1

Das Problem tritt auch in der Version jdk-8u231 auf. Behebung der Installation der Version jdk-8u221

Felipe Moreira Jorge
quelle
0

Apache NetBeans 11.1 unterstützt JDK 13 in der Tat nicht, dafür ist das kommende Apache NetBeans 11.2 gedacht - neueste Beta: bit.ly/apache-netbeans-11-2-beta-3

Geertjan Wielenga
quelle
0

Ich hatte das gleiche Problem mit Oracle JDK 13.0.1 und NetBeans 11.1, aber es funktionierte für mich mit OpenJDK 13.0.1 ( https://jdk.java.net/13/ ).

govojo
quelle
0

Fügen Sie einfach -J-Djdk.lang.Process.allowAmbiguousCommands = true zu netbeans_default_options in netbeans.conf hinzu

Ahmad Haj Abdulla
quelle