【问题标题】:Incorrect *.bat execution from Java [duplicate]从Java执行不正确的* .bat [重复]
【发布时间】:2014-05-16 14:23:52
【问题描述】:

我有 .bat 文件,例如:

mkdir testDir

现在我把它放到文件夹 C:\temp 然后我想使用 java 运行它,所以我执行以下操作:

Runtime.getRuntime().exec("cmd /c start C:\\temp\\test.bat");

我希望该文件夹将在 C:\temp 中创建,就像我手动执行此文件时一样,但是在我的工作区中创建的文件夹是错误的。 我该如何解决?

【问题讨论】:

  • 具体来说,该副本中的 second answer 可能是最好的,并且与下面 Jon 的答案相匹配。

标签: java batch-file


【解决方案1】:

运行cmd时需要指定工作目录。

Runtime.exec() 的重载允许您指定工作目录。例如:

Runtime.getRuntime().exec("cmd /c start C:\\temp\\test.bat", null,
                          new File("c:\\temp"));

或者,您可以使用ProcessBuilder 更明确地控制您正在启动的流程的各个方面。

【讨论】:

    最近更新 更多