从项目中运行文件

时间:2017-06-09 07:09:29

标签: java eclipse

我有一个项目,我正在尝试从类

中运行批处理文件

最终目标是在许多机器上运行 - 所以我不能使用“魔术”路径来使用此文件,因为它位于我的项目中而不是我的C驱动器

绝对路径(显然)有效,但我很难在Eclipse中创建路径来引用它

我在一个名为“batchfiles”的文件夹中有batch.bat但是当我尝试运行以下命令时,我得到一个文件未找到错误

Runtime.getRuntime().exec("cmd /c start \\batchfiles\\batch.bat");

即使batch.bat存在于我的项目中的该文件夹中

1 个答案:

答案 0 :(得分:1)

您应该查看 ProcessBuilder 。以下是文档中的完整示例:

 ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
 Map<String, String> env = pb.environment();
 env.put("VAR1", "myValue");
 env.remove("OTHERVAR");
 env.put("VAR2", env.get("VAR1") + "suffix");
 pb.directory(new File("myDir"));
 File log = new File("log");
 pb.redirectErrorStream(true);
 pb.redirectOutput(Redirect.appendTo(log));
 Process p = pb.start();
 assert pb.redirectInput() == Redirect.PIPE;
 assert pb.redirectOutput().file() == log;
 assert p.getInputStream().read() == -1;

在你的情况下,我认为命令应该是:

 ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "start", "\\batchfiles\\batch.bat");