【问题标题】:Java with maven wouldn't build: Cannot run program "cmd" "Malformed argument has embedded quote"带有 maven 的 Java 无法构建:无法运行程序“cmd”“格式错误的参数已嵌入引号”
【发布时间】:2020-02-13 02:45:31
【问题描述】:

我全新安装了 netbean 11.1。 现在我正在尝试构建一个项目,但我得到以下错误输出:

无法运行程序“cmd”(在目录“C:\projects\open”中):格式错误 参数已嵌入引号:“C:\Program 文件\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 构建过这个项目,但有一台新电脑。 和全新安装,但我确定上次尝试安装所有内容时没有问题。

【问题讨论】:

    标签: java windows maven netbeans-11


    【解决方案1】:

    虽然这个问题可以通过安装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。

    【讨论】:

    • 仍然与 jdk.1.8.0_241 相关。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      对于旧项目,adopt8-hotspot (AdoptOpenJDK-1.8.0_232-b09)sbt-0.13.X 出现此错误。

      通过在windows中设置环境变量后问题解决

      set JAVA_TOOL_OPTIONS=-Djdk.lang.Process.allowAmbiguousCommands=true
      

      【讨论】:

        【解决方案4】:

        我在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

        【讨论】:

        • Netbeans 开发人员已收到此问题报告和其他最近的问题报告,最新的开发版本(将是 11.2)已应用此修复程序,请参阅 lists.apache.org/thread.html/…
        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              【解决方案8】:

              Apache NetBeans 11.1 确实不支持 JDK 13,这就是即将推出的 Apache NetBeans 11.2 的用途 -- 最新测试版:bit.ly/apache-netbeans-11-2-beta-3

              【讨论】:

                【解决方案9】:

                在我写这篇文章的时候,我只在我的机器上安装了 JDK13。解压缩我的 netbeans 后,我的 netbeans 11.1 的内部 maven 遇到了同样的问题。

                显然 netbeans 11.1 不能与 JDK13 一起正常工作。我刚刚安装了JDK 8,现在问题解决了,没有任何额外的配置或参数更改。

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

                我希望这可能会有所帮助。

                干杯!

                【讨论】:

                • 同样适用于 jdk-11.0.5
                【解决方案10】:

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

                编辑:抱歉,我注意到您使用的是 netbeans 11.1,因此您可能有更高版本的 java可能有同样的问题。

                【讨论】:

                • 降级JDK并不是一个理想的解决方案。下面是涉及编辑 netbeans.conf 文件的更好选择。
                猜你喜欢
                • 1970-01-01
                • 2021-05-23
                • 1970-01-01
                • 1970-01-01
                • 2013-09-14
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多