Java avec maven ne construirait pas: Impossible d'exécuter le programme «cmd» «L'argument mal formé a une citation intégrée»

20

J'ai une nouvelle installation de netbean 11.1. Maintenant j'essaye de construire un projet mais j'obtiens la sortie d'erreur suivante:

Impossible d'exécuter le programme "cmd" (dans le répertoire "C: \ projects \ open"): un argument mal formé contient une citation: "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

J'ai déjà construit ce projet avec Netbeans 11.1 mais j'ai un nouveau PC. et une nouvelle installation, mais je suis sûr qu'il n'y a eu aucun problème la dernière fois que j'ai essayé de tout installer.

busyBee
la source

Réponses:

14

Bien que ce problème puisse être résolu en installant jdk1.8.0_221, vous n'avez en fait pas besoin de rétrograder votre JDK. Essayez-les:

  1. Quittez d'abord l'EDI netbeans s'il est ouvert, puis ouvrez le fichier de configuration netbeans à partir d'ici: netbeans-Install-Dir / etc / netbeans.conf (Remarque: pour moi, netbeans-Install-Dir est C: \ Program Files \ NetBeans 8.2 \ etc)
  2. Ajoutez les arguments ci-dessous
-J-Djdk.lang.Process.allowAmbiguousCommands=true
  1. au début de la chaîne que vous trouvez sur cette ligne:
netbeans_default_options="-J-client -J-Xss2m -J-Xms32m ......."

Exemple de capture d'écran comme indiqué ci-dessous: 4. Enregistrez la modification et démarrez votre IDE netbeans.entrez la description de l'image ici

Ali Safari
la source
Cela devrait être la réponse acceptée
ryvantage
ça marche, merci beaucoup!
Miguel Rodríguez
53

J'ai vérifié les notes de publication de JDK 13.0.1 sur https://www.oracle.com/technetwork/java/javase/13-0-1-relnotes-5592797.html#JDK-8221858

Ce comportement est une régression à partir d'un correctif de sécurité pour JDK-8221858 (non public). Suivez le lien pour une description complète. Le correctif fait partie de JDK 8u231, JDk 11.0.5, 13.0.1 etc.

Pour résoudre ce problème, ajoutez -J-Djdk.lang.Process.allowAmbiguousCommands=trueà netbeans_default_optionsdans <netbeans-dir>\etc\netbeans.conf.

Sephiroth
la source
1
Les développeurs Netbeans ont repris cela et d'autres rapports de problèmes récents et la dernière version de développement (qui sera la 11.2) a ce correctif appliqué, voir lists.apache.org/thread.html/…
Peter Hull
7

Avez-vous par hasard installé la dernière mise à jour critique pour java? jdk 1.7_241? Je l'ai installé aujourd'hui et rencontrais exactement le même problème. J'ai rétrogradé ma version jdk et cela l'a complètement résolu.

EDIT: Toutes mes excuses, j'ai remarqué que vous utilisez netbeans 11.1, vous avez donc probablement une version java ultérieure, dans tous les cas, vous pouvez essayer de rétrograder votre version java vers une version précédente si vous la mettiez à jour aujourd'hui car l'autre version pourrait avoir le même problème.

angusg96
la source
2
l'installation de jdk1.8.0_221 l'a résolu
busyBee
La rétrogradation du JDK n'est pas une solution idéale. Une meilleure option impliquant la modification du fichier netbeans.conf est ci-dessous.
ryvantage
5

Au moment où j'écris, je n'avais que JDK13 installé uniquement sur ma machine. Après avoir décompressé mes netbeans, j'ai le même problème avec le maven interne de mes netbeans 11.1.

Apparemment, Netbeans 11.1 ne fonctionne pas correctement avec le JDK13. Je viens d'installer le JDK 8 et le problème est maintenant résolu, sans aucune configuration ou modification de paramètre supplémentaire.

Néanmoins, puisque j'ai besoin du JDK13, j'ai tous les deux installé mais mon fichier netbeans.conf pointe vers JDK8. Plus tard, vous pourrez définir la nouvelle plateforme Java dans la configuration du projet netbeans.

J'espère que cela pourrait aider.

À votre santé!

marcello
la source
1
il en va de même pour jdk-11.0.5
busyBee
5

J'ai eu cette erreur avec adopt8-hotspot (AdoptOpenJDK-1.8.0_232-b09)et sbt-0.13.Xpour un ancien projet.

Problème résolu après avoir défini la variable d'environnement dans Windows via

set JAVA_TOOL_OPTIONS=-Djdk.lang.Process.allowAmbiguousCommands=true
raisercostine
la source
1

Cela semble se produire avec toutes les versions jdk récemment publiées (11.0.5 et 13.0.1 au moins), même avec le dernier Netbeans 11.2vc1 (et vu aussi sur NB 11.1). Rétrogradez votre jdk vers 11.0.4 ou 13.0.0. Cela a résolu le problème pour moi

Pierre Maréchal
la source
1

Le problème se produit également dans la version jdk-8u231. Correction de l'installation de la version jdk-8u221

Felipe Moreira Jorge
la source
0

Apache NetBeans 11.1 ne prend en effet pas en charge JDK 13, c'est à cela que sert le prochain Apache NetBeans 11.2 - dernière version bêta: bit.ly/apache-netbeans-11-2-beta-3

Geertjan Wielenga
la source
0

J'ai eu le même problème avec oracle jdk 13.0.1 et netbeans 11.1, mais cela a fonctionné pour moi avec openjdk 13.0.1 ( https://jdk.java.net/13/ ).

govojo
la source
0

il suffit d'ajouter -J-Djdk.lang.Process.allowAmbiguousCommands = true à netbeans_default_options dans netbeans.conf

Ahmad Haj Abdulla
la source