带有maven的Java无法生成:无法运行程序“ 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构建了这个项目,但是有了新的pc。然后重新安装,我确定上次尝试安装所有内容时都没有问题。

Answers:


13

尽管可以通过安装jdk1.8.0_221来解决此问题,但实际上您不需要降级JDK。只需尝试以下方法:

  1. 首先打开netbeans IDE(如果已打开),然后从此处打开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.保存更改并启动netbeans IDE。在此处输入图片说明


这应该是公认的答案
ryvantage

它的工作原理,非常感谢!
米格尔·罗德里格斯

53

我已经在https://www.oracle.com/technetwork/java/javase/13-0-1-relnotes-5592797.html#JDK-8221858上查看了JDK 13.0.1的发行说明。

此行为是JDK-8221858(非公开)的安全修复程序的回归。请点击链接以获取完整说明。该修复程序是JDK 8u231,JDk 11.0.5、13.0.1等的一部分。

要解决此问题,请附加-J-Djdk.lang.Process.allowAmbiguousCommands=truenetbeans_default_options<netbeans-dir>\etc\netbeans.conf


1
,Netbeans的开发商纷纷拿起这和其他最近的问题报告和最新开发版本(这将是11.2),已此修复程序应用,见lists.apache.org/thread.html/...
彼得·赫尔

7

您是否偶然安装了Java的最新关键更新?jdk 1.7_241?我今天安装了它,并且遇到了完全相同的问题。我降级了我的jdk版本,它彻底解决了它。

编辑:抱歉,我注意到您使用的是netbeans 11.1,因此您可能拥有更高的Java版本,无论如何,如果您今天偶然更新了Java版本,则可以尝试将Java版本降级为以前的版本,因为另一个版本可能具有同样的问题。


2
安装jdk1.8.0_221解决了它
busyBee

降级JDK并不是理想的解决方案。下面是涉及编辑netbeans.conf文件的更好的选择。
ryvantage

5

在撰写本文时,仅在机器上安装了JDK13。解压缩netbeans之后,我的netbeans 11.1内部专家也遇到了同样的问题。

显然,netbeans 11.1在JDK13上无法正常工作。我刚刚安装了JDK 8,现在解决了该问题,而无需进行任何其他配置或参数更改。

尽管如此,由于我需要JDK13,所以我都安装了JDK13,但是我的netbeans.conf文件指向JDK8。稍后,您可以在netbeans项目配置中定义新的Java平台。

我希望这会有所帮助。

干杯!


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

1

这似乎发生在所有最近发布的jdk版本(至少为11.0.5和13.0.1)上,即使是最新的Netbeans 11.2vc1(也在NB 11.1上也见证过)。将您的jdk降级到11.0.4或13.0.0。它为我解决了这个问题





By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.