【发布时间】:2013-02-28 13:40:14
【问题描述】:
我正在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();
【问题讨论】:
-
如果要确保在执行后被删除,应等待执行完成后再删除。
-
如果您可以访问 bat 文件,您可以将其设为 delete itself
标签: java multithreading runtime.exec