我确实使用Runtime类
public void createDBStructure() throws IOException {
InputStream stream = DBStructureCreator.class.getClassLoader().getResourceAsStream("sql_structure");
if (stream == null) {
logger.log(Level.INFO, "File copy error: sql_structure is not found.");
} else {
String query;
query = StreamConverter.convertStreamToString(stream);
String cmd = "mysql -uroot -ppassw0rd";
Runtime run = Runtime.getRuntime();
Process pr = run.exec(cmd);
BufferedWriter buf = new BufferedWriter(new OutputStreamWriter(pr.getOutputStream()));
buf.write(query);
buf.write(";\n\n\n");
buf.write("exit\n\n\n");
buf.flush();
buf.close();
}
}
但完成此任务需要时间,但仍然无法阻止。如果我在表格可能尚未提供之后立即运行一些代码。 如何让它阻塞,直到mysql完成创建表。 要么如何让它更快
答案 0 :(得分:1)
pr.waitfor()将等到此Process实例引用的进程完成。