【问题标题】:How can I use Java to run OS commands如何使用 Java 运行操作系统命令
【发布时间】:2013-02-01 09:38:33
【问题描述】:

我正在制作一个程序,它必须用clafer -m=xml Case5.cfr 调用Clafer

所以我用

ProcessBuilder pb = new ProcessBuilder("clafer -m=xml " + "Case5.cfr");
pb.directory(new File("C:\\Users\\unituser\\workspace\\com.unitbilisim.clafer2Ecore\\src\\model\\"));
Process P = pb.start();

但总是出现以下错误:

Exception in thread "main" java.io.IOException: Cannot run program "clafer -m=xml Case5.cfr" (in directory "C:\Users\unituser\workspace\com.unitbilisim.clafer2Ecore\src\model"): CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(Unknown Source)
    at EmfCompare.emfCompareDeneme.main(emfCompareDeneme.java:54)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    ... 2 more

我不明白为什么。谁能帮帮我?

【问题讨论】:

  • 您需要将程序名称与其参数分开,每个参数都需要位于字符串数组或字符串列表的不同字符串元素中。

标签: java windows command cmd


【解决方案1】:

你可以使用这个:

final Runtime rt = Runtime.getRuntime();
rt.exec("OS command");

编辑 你也可以使用ProcessBuilder

查看this link 以获取两者的示例

【讨论】:

    【解决方案2】:

    试一试

    Process p = Runtime.getRuntime().exec("clafer -m=xml Case5.cfr", null, new File("C:\\Users\\unituser\\workspace\\com.unitbilisim.clafer2Ecore\\src\\model\\"));
    

    Process p = new ProcessBuilder("clafer", "-m=xml", "Case5.cfr")
       .directory(new File("C:\\Users\\unituser\\workspace\\com.unitbilisim.clafer2Ecore\\src\\model\\"))
       .start();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-13
      • 2015-09-14
      • 2013-06-19
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      • 2014-01-23
      相关资源
      最近更新 更多