import java.util.Scanner;
public class test {
public static void main(String[] args) {
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
System.out.println("Shutdown.");
}
});
String input ="";
Scanner in = new Scanner(System.in);
while(true) {
System.out.print("> ");
// if (in.hasNext())
input = in.nextLine();
if (input.equalsIgnoreCase(""))
continue;
}
}
}
我有這個簡單的控制檯程序,我試圖實現Ctrl-C來簡單地退出。搜索後,我已經使用關閉掛鉤取得了部分成功,但它不能幹淨地工作。Java控制檯程序和CTRL-C
隨着線條的註釋,程序似乎在退出前循環了好幾次(這是主線程只是循環自己的?),並且在下一行嘗試讀取輸入流的註釋中出現異常。
實現這個目標的最佳方法是什麼?
你可能要考慮使用Java的控制檯:http://download.oracle.com/javase/6/docs/api/java/io/Console.html – ranman 2011-02-26 01:31:25
還有我無法複製你的錯誤與線未註釋。 – ranman 2011-02-26 01:38:10
此代碼適用於我:我按Ctrl-C並在運行關機掛鉤後退出VM。你確定你已經正確理解關閉掛鉤嗎?它們在虛擬機開始關閉之後運行,即它在接收到通過按下Ctrl-C生成的操作系統信號之後運行。他們不是你應該用來啓動關機的東西;相反,即使您的程序沒有正常終止,它們也可以清理資源。 – 2011-02-26 04:11:23