Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mencegah Ctrl C daripada Menamatkan Aplikasi Java CLI Anda?

Bagaimana untuk Mencegah Ctrl C daripada Menamatkan Aplikasi Java CLI Anda?

Linda Hamilton
Linda Hamiltonasal
2024-10-25 08:41:28688semak imbas

How to Prevent Ctrl C from Terminating Your Java CLI Application?

Pemintasan Ctrl C dalam Aplikasi Java CLI

Masalah: Bagaimana untuk mengendalikan peristiwa Ctrl C dalam aplikasi CLI Java untuk mengelakkan penamatan proses?

Konteks: Gelagat lalai untuk Ctrl C dalam aplikasi CLI adalah untuk menamatkan proses, tetapi untuk aplikasi tertentu, mungkin perlu memintas isyarat ini dan melaksanakan tindakan tertentu sebaliknya.

Penyelesaian:

Untuk memintas Ctrl C dalam aplikasi Java CLI berbilang platform, anda boleh menggunakan salah satu kaedah berikut:

Waktu Jalan Cangkuk Tutup:

Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
        // Your shutdown code that handles Ctrl+C
    }
});

Kaedah ini akan melaksanakan kod anda apabila JVM dimatikan akibat daripada Ctrl C. Walau bagaimanapun, ia mungkin tidak memberikan kawalan sepenuhnya ke atas pengendalian isyarat.

SignalHandler:

public class SignalHandler {

    public static void registerCtrlCHandler() {
        try {
            Signal.handle(new Signal("INT"), (s) -> {
                // Your Ctrl+C handling logic here
            });
        } catch (Exception e) {
            // Handle exception
        }
    }
}

Menggunakan SignalHandler dari pakej sun.misc, anda boleh memintas isyarat SIGINT, yang dicetuskan oleh Ctrl C dan melakukan tindakan tersuai dalam aplikasi anda . Ini memberikan kawalan yang lebih terperinci ke atas pengendalian isyarat.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah Ctrl C daripada Menamatkan Aplikasi Java CLI Anda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn