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