【问题标题】:Netbeans 9/10/11 cannot run program "cmd"Netbeans 9/10/11 无法运行程序“cmd”
【发布时间】:2019-10-18 07:02:07
【问题描述】:

我将 NetBeans 11 解压缩到 C:\netbeans,将多个版本的 JDK 安装到 C:\java,并在 NetBeans 中创建了一个测试类,其中包含一个 main 方法和一行代码 System.out.print("hello world");。当我单击 Run Project 按钮时,输出窗口会显示命令:

cd C:\Users\MyUsername\Documents\NetBeansProjects\asdf; 
JAVA_HOME=C:\\Java\\jdk1.8.0_231 cmd /c "\"\"C:\\netbeans-9\\java\\maven\\bin\\mvn.cmd\" 
  -Dexec.args=\"-classpath %classpath com.mycompany.asdf.Test\" 
  -Dexec.executable=C:\\Java\\jdk1.8.0_231\\bin\\java.exe  
  -Dmaven.ext.class.path=C:\\netbeans-9\\java\\maven-nblib\\netbeans-eventspy.jar  
  -Dfile.encoding=UTF-8 process-classes org.codehaus.mojo:exec-maven-plugin:1.5.0:exec\""

接着是错误:

无法运行程序“cmd”(在目录“C:\Users\MyUsername\Documents\NetBeansProjects\asdf”中):格式错误的参数已嵌入引号:“C:\netbeans-9\java\maven\bin\mvn. cmd" -Dexec.args="-classpath %classpath com.mycompany.asdf.Test" -Dexec.executable=C:\Java\jdk1.8.0_231\bin\java.exe -Dmaven.ext.class.path=C :\netbeans-9\java\maven-nblib\netbeans-eventspy.jar -Dfile.encoding=UTF-8 进程类 org.codehaus.mojo:exec-maven-plugin:1.5.0:exec

无论该类是否创建 GUI,它都会给出相同的错误。我已经使用 JDK 7、8 和 11 尝试了 NetBeans 9、10 和 11。我在安装过程中是否遗漏了某些内容,或者我在某个错误的目录中是否有某些内容?我迷路了。

【问题讨论】:

  • 似乎命令行被不应该存在的" 字符弄糊涂了。
  • 关于“我安装了 NetBeans 11 并创建了一个小型测试类”,您需要提供更多信息,因为读者不知道您实际做了什么。详细说明您采取的具体措施,以便其他人可以尝试重现您的问题。
  • 完成,谢谢。堆栈溢出的新手。

标签: java maven netbeans ide


【解决方案1】:

无需降级 JDK,只需在 netbeans.conf

添加
  1. 找到您的 netbeans.conf 文件。例如:netbeansIstallDir/etc/netbeans.conf

  2. 找到键 netbeans_default_options 并在字符串的开头添加以下内容:-J-Djdk.lang.Process.allowAmbiguousCommands=true

    应该是这样的:

    netbeans_default_options="-J-Djdk.lang.Process.allowAmbiguousCommands=true..."
    

【讨论】:

  • 这到底是做什么的?我是否通过允许模棱两可的命令使 Netbeans 变得不那么安全/稳定?
  • 可能不费吹灰之力,但只是想添加,完成此操作后重新启动netbeans。
【解决方案2】:

按照此处的建议通过安装 jdk1.8.0_221 解决了这个问题:

Java with maven wouldn't build: Cannot run program "cmd" "Malformed argument has embedded quote"

希望对你也有帮助

【讨论】:

  • 您能否分享一下您从哪里获得 221 更新?我只能找到 231。
  • 非常感谢。这解决了我的问题。猜测更新 231 更改了引号的转义方式或其他内容。
【解决方案3】:

无需降级到较旧的 JDK 版本,请查看我在 https://stackoverflow.com/a/58484737 的回答以获取解决方案和更改的背景。

【讨论】:

    【解决方案4】:

    找到键 netbeans_default_options 并在字符串的开头添加以下内容:-J-Djdk.lang.Process.allowAmbiguousCommands=true

    应该是这样的:

    netbeans_default_options="-J-Djdk.lang.Process.allowAmbiguousCommands=true..."

    如果来自 Omer Erden,恭喜...

    【讨论】:

      【解决方案5】:

      在尝试运行任何项目时,我遇到了相同的“格式错误的参数已嵌入引号:”错误。 Netbeans 11.0 和我已经尝试过 jdk13.0.1 jdk11.0.5 和 jkd1.8.0 都出现相同的错误。我也很茫然。

      【讨论】:

      • 下载jdk1.8.0_221。这解决了我的问题。我假设更新 231 用转义引号破坏了一些东西。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 2011-02-03
      • 1970-01-01
      相关资源
      最近更新 更多