1
我從我的java程序啓動了一個批處理文件,這會停止一些tomcats,如果從命令行啓動該批處理,批處理本身就會工作。但從Java開始它不起作用,問題是批處理不會從持久的文件夾中調用。所以它找不到一些文件,我的問題是我如何切換到批處理所在的文件夾,然後啓動批處理,以便它從文件夾中運行並找到必要的文件。從java調用批處理需要從當前批處理文件文件夾啓動
例如批處理在於文件夾c:\ foobar的\ mybatch.cmd
這裏是我的代碼,目前如何批量將被從Java
public void startBatch(Path batchPath) {
if (batchPath == null) {
throw new IllegalArgumentException("cannot start batch without path to it");
}
if (!Files.exists(batchPath)){
throw new IllegalArgumentException("batch does not exist " + batchPath.toString());
}
try {
log.info("starting batch " + batchPath.toAbsolutePath().toString());
String command = "cmd.exe /c " + batchPath.toAbsolutePath().toString();
Process p;
p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = reader.readLine();
while (line != null) {
log.info(line);
line = reader.readLine();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// TODO Auto-generated method stub
}
有什麼建議嗎?我能否以某種方式導航到批處理文件夾中,以便java從那裏調用它? – 2013-03-27 21:02:39