java - 如何使用 Java 运行操作系统命令

标签 java windows command cmd

我正在编写一个程序,必须使用 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

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

最佳答案

尝试作为

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();

关于java - 如何使用 Java 运行操作系统命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14911197/

相关文章:

java - Eclipse 文件夹结构已更改

windows - 带有通用应用程序的系统托盘/任务栏图标/通知图标

c - 如何使 Ubuntu 命令在 Windows 上运行

.net - 使用 MultiBinding 时将枚举值作为命令参数传递

java - 如何处理Freemarker字符串模板?

java - 将 spring 请求主体转换为对象列表

java - VB6 到 Java 转换器

c++ - 正确检测UNC卷是否在线

windows - 识别特定线程使用的处理器(核心)

php系统命令linux