Rumah > Java > javaTutorial > teks badan

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

Linda Hamilton
Lepaskan: 2024-10-25 08:41:28
asal
746 orang telah melayarinya

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
    }
});
Salin selepas log masuk

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
        }
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan