Merakam Ctrl C Interrupts dalam CLI Java Applications
Dalam aplikasi CLI Java, memintas isyarat Ctrl C (biasanya menamatkan proses) boleh penting untuk mengendalikan input pengguna dengan anggun. Artikel ini membincangkan cara untuk mencapai pemintasan ini merentas berbilang platform.
Penyelesaian Pelbagai Platform
Untuk memintas isyarat Ctrl C secara konsisten merentas Linux, Solaris dan Windows, disyorkan pendekatan menggunakan SignalHandler. Kelas sun.misc.SignalHandler menyediakan fungsi ini. Dengan melaksanakan SignalHandler#handle dan mendaftarkannya untuk isyarat SIGINT, anda boleh menangkap gangguan dan melaksanakan kod tersuai.
Pelaksanaan
Berikut ialah contoh cara menggunakan SignalHandler dalam Java:
<code class="java">import sun.misc.Signal; import sun.misc.SignalHandler; public class CtrlCHandler { public static void main(String[] args) { // Register a SignalHandler for SIGINT (Ctrl+C) Signal.handle(new Signal("INT"), new SignalHandler() { @Override public void handle(Signal signal) { // Custom shutdown code here System.out.println("Ctrl+C received, performing shutdown..."); Runtime.getRuntime().exit(0); } }); // Other application logic here... } }</code>
Perhatikan bahawa kaedah ini akan memintas isyarat hanya sebagai langkah perantaraan sebelum JVM dimatikan sepenuhnya, jadi ia mungkin tidak sesuai untuk semua kes penggunaan.
Sebagai alternatif:
Jika menggunakan SignalHandler tidak boleh dilaksanakan, pertimbangkan untuk menggunakan kaedah Runtime.getRuntime().addShutdownHook. Ini membolehkan anda mendaftarkan Thread yang akan dilaksanakan apabila JVM dimatikan. Dalam urutan ini, anda boleh mengendalikan gangguan Ctrl C dan melakukan sebarang prosedur pembersihan atau penutupan yang diperlukan.
<code class="java">Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { // Custom shutdown code here System.out.println("JVM shutting down..."); } });</code>
Kaedah ini menyediakan penyelesaian yang fleksibel untuk memintas isyarat Ctrl C dalam aplikasi Java CLI, membolehkan anda mengendalikan input pengguna dengan anggun dan lakukan tindakan tersuai sebelum penamatan proses.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Gangguan Ctrl C dengan Anggun dalam Aplikasi Java CLI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!