在Java程序中执行bat文件

时间:2014-02-07 17:36:52

标签: java batch-file runtime.exec

如何在我的java程序中执行.bat或.exe,该程序位于包含我的java程序的主文件夹中的子文件夹中。

Runtime.getRuntime().exec("cmd /c start example.bat");

当.bat与java程序位于同一文件夹中时,上面的代码完全正常。但是如果我的程序的.java和.class文件是在一个包中组织的(并且.bat将在一个单独的文件夹中),我该如何调用该bat程序?

3 个答案:

答案 0 :(得分:1)

如果.bat文件位于其他文件夹中,则应将其完整绝对路径传递给cmd.exe。另外,要获得正确的引用,您应该使用以数组作为参数的方法:

String[] cmd = {"cmd", "/c", "start", path};
Runtime.getRuntime().exec(cmd);

如果您知道.bat文件相对于.jar文件的位置,则可以使用Class对象的属性找到它。请参阅示例How to get the path of a running JAR file?

答案 1 :(得分:0)

在您的情况下可能不可行,但如果您将批处理文件的位置添加到执行路径会怎么样?

答案 2 :(得分:0)

您可以使用example.bat的完整绝对路径或工作目录中的相对路径。