我正在尝试在Java中运行.batch
文件,并在该文件中传递参数。但是没有成功。该代码段为:
ProcessBuilder processBuilder = new ProcessBuilder("metadata_extractor.bat",
"C:\\Users\\xxxxxxxx\\Videos\\video", "123.m4v");
try {
Process process = processBuilder.start();
StringBuilder output = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
output.append(line + "\n");
}
int exitVal = process.waitFor();
if (exitVal == 0) {
System.out.println(output);
log.info("Output : " + output);
System.exit(0);
} else {
// abnormal...
log.info("Abnormal case ");
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
这里我正在传递文件路径和文件名作为参数,但是它对我不起作用。如果可以的话,请帮助我。谢谢
而不是ProcessBuilder processBuilder = new ProcessBuilder("metadata_extractor.bat",
"C:\\Users\\xxxxxxxx\\Videos\\video", "123.m4v");
您可以尝试
ProcessBuilder processBuilder = new ProcessBuilder("C:\\Users\\xxxxxxxx\\Videos\\video\\metadata_extractor.bat");