我正在 Java
中动态创建 .bat
。
创建文件并执行后,我想删除它。
为了确保 delete()
在运行 .bat
文件后执行,我在不同的线程中删除了该文件。
这是完成这项任务的好方法吗?您将如何以更好的方式实现它?
final File file = new File("run.bat");
file.createNewFile();
PrintWriter writer = new PrintWriter(file, "UTF-8");
writer.println(COMMAND1);
writer.println(COMMAND2);
.... ANOTHER COMMANDS
writer.close();
Runtime.getRuntime().exec("cmd /c start a.bat");
new Thread(new Runnable() {
public void run() {
file.delete();
}
}).run();
最佳答案
我不会在不同的线程中删除该文件,如果在您尝试删除它时文件执行仍在运行怎么办?
我会考虑询问 exit code从文件中获取,或者使用 process.waitFor() ,它会导致当前线程等待(如有必要),直到此 Process 对象表示的进程终止。
Process p = Runtime.getRuntime().exec("cmd /c start a.bat");
p.waitFor();
file.delete();
关于java - 创建 ".bat"文件,运行它并从Java中删除它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15137006/