0
下面的代码将在killProcess()杀死它之后运行OSK(屏幕键盘)过程,之前它在我添加Thread.sleep 1秒之前不会弹出。那么是否有任何方法可以确保killProcess()在启动没有Thread.sleep的OSK进程一秒之前完全执行?一些不是基于时间的,在进入下一行之前会完全运行killProcess()的代码。对不起,任何困惑和感谢阅读!希望有人愿意帮助我。如何在继续之前等待方法完成完成?
public static void main(String... args) {
try {
killProcess();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
Runtime.getRuntime().exec("c:\\Temp\\osk.exe");
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void killProcess() throws Exception {
Runtime rt = Runtime.getRuntime();
rt.exec("cmd.exe /c taskkill " + "osk.exe");
Runtime.getRuntime().exec("taskkill /IM " + "osk.exe");
}
我有点不确定你为什么以两种不同的方式运行'taskkill'。我甚至不认为第一次调用会起作用,但我已经专注于这个问题的Java方面,而不是Windows命令行方面。 – studro
感谢您的回答!这两个taskkill都在工作,这只是我之前做过的一个小实验,用于检查它是否都在工作 – Artest113
在命令行中,第一个调用在Windows 7中不适用于我,但如果它现在适用于您, 那很棒。我很高兴能够提供帮助。 – studro