【问题标题】:java.io.IOException: Cannot run program "tskill": CreateProcess error=2, The system cannot find the file specifiedjava.io.IOException: Cannot run program "tskill": CreateProcess error=2, 系统找不到指定的文件
【发布时间】:2016-03-30 16:01:17
【问题描述】:

我正在尝试运行一个运行 tskill Windows 命令的 Java 程序,但我得到了标题中列出的异常。当我从命令提示符运行 tskill 时,它就在路径上。我在 Eclipse 中将这个程序作为 Java 应用程序运行。我在eclipse的Path里加了c:\windows\system32,但是java程序还是找不到。我该如何解决?如何确定 java 程序中设置的路径?

    try {
        RunProcess.doExecuteCommand("tskill winword /A");
        Thread.sleep(1000);
    } catch (Throwable t) {
        throw new GenerationException(t);
    }
}

【问题讨论】:

  • tskill(或 tskill.exe)在哪里?
  • C:\Windows\System32\tskill.exe
  • @MrSmith 你能检查来自System.out.println(System.getenv());PATH 变量是否有`c:\Windows\System32` 条目。如果没有,您可以添加此条目并尝试。
  • 我检查了 & PATH 设置为 C:\Windows\System32。运行时是否有可能不使用 PATH 环境变量?

标签: java j-integra


【解决方案1】:

试试这个

try {
    Runtime rt = Runtime.getRuntime();
    rt.exec("tskill winword /A");
} catch (Throwable t) {
    t.printStackTrace();
}

【讨论】:

  • 我在后台检查了 RunProcess.doExecuteCommand 正在做的事情。如何确定 Runtime.getRuntime() 正在查找的路径?
  • RunProcess的全包是什么?好像不是JDK的标准类?
  • Runtime.getRuntime 返回您的 Java 应用程序运行的环境,如果您在运行应用程序时不通过设置 eclipse 或额外参数覆盖它,它包含操作系统的所有环境继承
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-12
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 2018-09-17
相关资源
最近更新 更多