无法使用Java构建Maven:无法运行程序“ cmd”“格式错误的参数已嵌入引号”

时间:2019-10-16 10:35:12

标签: java windows maven netbeans-11

我重新安装了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。 然后重新安装,我确定上次尝试安装所有内容时都没有问题。

10 个答案:

答案 0 :(得分:25)

我已经在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=true附加到netbeans_default_options中的<netbeans-dir>\etc\netbeans.conf

答案 1 :(得分:5)

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

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

答案 2 :(得分:3)

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

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

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

我希望这会有所帮助。

干杯!

答案 3 :(得分:2)

对于旧项目,我在adopt8-hotspot (AdoptOpenJDK-1.8.0_232-b09)sbt-0.13.X上遇到此错误。

通过

在Windows中设置环境变量后解决的问题
set JAVA_TOOL_OPTIONS=-Djdk.lang.Process.allowAmbiguousCommands=true

答案 4 :(得分:1)

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

答案 5 :(得分:1)

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

  • 1。首先退出netbeans ide(如果已打开),然后从此处打开netbeans配置文件:nefbeansIstallDir / etc / netbeans.conf (注意:对我来说nefbeansIstallDir是C:\ Program Files \ NetBeans 8.2 \ etc)
  • 2。将此'-J-Djdk.lang.Process.allowAmbiguousCommands = true'添加到在此行找到的字符串的开头:netbeans_default_options =“-J-client -J-Xss2m -J-Xms32m ...... 。”
  • 3。保存更改并启动netbeans ide。
  • 答案 6 :(得分:1)

    只需将-J-Djdk.lang.Process.allowAmbiguousCommands = true添加到netbeans.conf中的netbeans_default_options

    答案 7 :(得分:0)

    Apache NetBeans 11.1确实不支持JDK 13,这就是即将发布的Apache NetBeans 11.2的目的-最新Beta:bit.ly/apache-netbeans-11-2-beta-3

    答案 8 :(得分:0)

    我在使用oracle jdk 13.0.1和netbeans 11.1时遇到了同样的问题,但是它在openjdk 13.0.1(https://jdk.java.net/13/)中对我有用。

    答案 9 :(得分:0)

    在版本jdk-8u231中也会出现此问题。修复安装jdk-8u221版本