Apa cara terbaik untuk keluar dari aplikasi Java dengan kode?
Apa cara terbaik untuk keluar dari aplikasi Java dengan kode?
Jawaban:
Anda dapat menggunakan System.exit()untuk tujuan ini.
Menurut dokumentasi Java 8 oracle:
public static void exit(int status)Menghentikan Java Virtual Machine yang sedang berjalan. Argumen berfungsi sebagai kode status; oleh konvensi, kode status bukan nol menunjukkan penghentian abnormal .
Metode ini memanggil metode keluar di kelas Runtime. Metode ini tidak pernah kembali secara normal.
Panggilan
System.exit(n)secara efektif setara dengan panggilan:
Runtime.getRuntime().exit(n)
System.exit(0);
"0" membuat siapa pun yang memanggil program Anda tahu bahwa semuanya berjalan baik. Namun, jika Anda berhenti karena kesalahan, Anda harus System.exit(1);, atau dengan nomor bukan nol yang sesuai dengan kesalahan spesifik.
Juga, seperti yang disebutkan orang lain, bersihkan dulu! Itu melibatkan penutupan file dan sumber daya terbuka lainnya.
System.exit(1)(atau nomor lain) adalah jika Anda ingin menunjukkan bahwa itu ditutup karena kesalahan. System.exit(0)menunjukkan bahwa program ditutup secara normal. Anda juga dapat mengubah 1 ke nomor apa pun yang Anda suka, lalu saat menjalankan aplikasi dari skrip, Anda dapat menentukan apakah ada kesalahan.
System.exit() biasanya bukan cara terbaik, tetapi itu tergantung pada aplikasi Anda.
Cara biasa untuk mengakhiri aplikasi adalah dengan keluar dari main()metode. Ini tidak berfungsi ketika ada thread non-deamon lain yang berjalan, seperti biasa untuk aplikasi dengan antarmuka pengguna grafis (AWT, Swing, dll.). Untuk aplikasi ini, Anda dapat menemukan cara untuk mengakhiri loop acara GUI (tidak tahu apakah itu mungkin dengan AWT atau Swing), atau memanggil System.exit().
Saya setuju dengan Jon, minta aplikasi Anda bereaksi terhadap sesuatu dan panggil System.exit ().
Pastikan bahwa:
Jawabannya adalah System.exit (), tetapi bukan hal yang baik untuk dilakukan karena ini membatalkan program. Setiap pembersihan, hancurkan yang ingin Anda lakukan tidak akan terjadi.
Ada dua jawaban sederhana untuk pertanyaan itu.
Ini adalah "Cara Profesional":
//This just terminates the program.
System.exit(0);
Ini adalah cara yang lebih clumsier:
//This just terminates the program, just like System.exit(0).
return;
System.exit(0); return;itu bagus juga, kembalinya mencegah kode ruther dari dijalankan sebelum Sistem dapat keluar, jika tidak Anda akan memerlukan bendera (..i.e. if (!called_exit) { further code after exit statement }
Runtime.getCurrentRumtime().halt(0);
halt: "Metode ini harus digunakan dengan sangat hati-hati. Tidak seperti exitmetode ini, metode ini tidak menyebabkan kait shutdown untuk dimulai dan tidak menjalankan fininver yang tidak diikutsertakan jika finalisasi saat keluar telah diaktifkan. Jika urutan shutdown memiliki sudah dimulai maka metode ini tidak menunggu kait shutdown atau finalis yang sedang berjalan untuk menyelesaikan pekerjaan mereka. " Singkatnya, Anda tidak perlu menggunakan halt, Anda harus memilih exit.
System.exit()akan melakukan apa yang Anda inginkan. Tetapi dalam sebagian besar situasi, Anda mungkin ingin keluar dari utas, dan membiarkan utas utama tetap hidup. Dengan melakukan itu, Anda dapat menghentikan tugas, tetapi juga menjaga kemampuan untuk memulai tugas lain tanpa memulai ulang aplikasi.
Ini harus dilakukan dengan cara yang benar:
mainFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
mainFrame.addWindowListener(new WindowListener() {
@Override
public void windowClosing(WindowEvent e) {
if (doQuestion("Really want to exit?")) {
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.dispose();
}
}