কোড সহ জাভা অ্যাপ্লিকেশন ছাড়ার সর্বোত্তম উপায় কী?
কোড সহ জাভা অ্যাপ্লিকেশন ছাড়ার সর্বোত্তম উপায় কী?
উত্তর:
আপনি System.exit()এই উদ্দেশ্যে ব্যবহার করতে পারেন ।
ওরাকলের জাভা 8 ডকুমেন্টেশন অনুসারে:
public static void exit(int status)বর্তমানে চলমান জাভা ভার্চুয়াল মেশিনটি সমাপ্ত করে। যুক্তি স্থিতি কোড হিসাবে কাজ করে; কনভেনশন দ্বারা, একটি ননজারো স্থিতি কোড অস্বাভাবিক সমাপ্তি নির্দেশ করে ।
এই পদ্ধতিটি ক্লাস রানটাইমে প্রস্থান পদ্ধতিকে কল করে। এই পদ্ধতিটি কখনই সাধারণত ফিরে আসে না।
কলটি
System.exit(n)কার্যকরভাবে কলটির সমতুল্য:
Runtime.getRuntime().exit(n)
System.exit(0);
"0" আপনার প্রোগ্রামকে যাকে ডেকেছে তা জানতে দেয় যে সবকিছু ঠিক আছে। তবে, যদি আপনি কোনও ত্রুটির কারণে প্রস্থান করছেন, তবে আপনার System.exit(1);বা অন্য কোনও শূন্য নম্বর নির্দিষ্ট ত্রুটির সাথে হওয়া উচিত।
এছাড়াও, অন্যরা যেমন বলেছে, প্রথমে পরিষ্কার করুন! এর মধ্যে ফাইল এবং অন্যান্য উন্মুক্ত সংস্থান বন্ধ করা জড়িত।
System.exit(1)(বা অন্য কোনও সংখ্যা) হ'ল যদি আপনি এটি চিহ্নিত করতে চান যে এটি কোনও ত্রুটির কারণে বন্ধ হয়ে গেছে। System.exit(0)ইঙ্গিত দেয় যে প্রোগ্রামটি সাধারণত বন্ধ ছিল। আপনি নিজের পছন্দ মতো যে কোনও সংখ্যায় 1 পরিবর্তন করতে পারেন, তারপরে আপনি যখন কোনও স্ক্রিপ্ট থেকে আপনার অ্যাপ্লিকেশনটি চালাচ্ছেন আপনি কোনও ত্রুটি হয়েছে কিনা তা নির্ধারণ করতে পারেন।
System.exit() সাধারণত সেরা উপায় নয়, তবে এটি আপনার প্রয়োগের উপর নির্ভর করে।
কোনও অ্যাপ্লিকেশন শেষ করার স্বাভাবিক main()পদ্ধতিটি পদ্ধতিটি থেকে বেরিয়ে আসা । যখন গ্রাফিকাল ইউজার ইন্টারফেস (এডাব্লুটি, সুইং ইত্যাদি) এর সাথে অ্যাপ্লিকেশনগুলির জন্য যথারীতি অন্যান্য নন-ডিমন থ্রেড চলমান থাকে তখন এটি কাজ করে না। এই অ্যাপ্লিকেশনগুলির জন্য, আপনি হয় GUI ইভেন্ট লুপটি শেষ করার উপায় খুঁজে পান (এটি ডাব্লুটিটি বা সুইং দিয়ে সম্ভব কিনা তা জানেন না), বা অনুরোধ করবেন System.exit()।
আমি জনের সাথে একমত, আপনার অ্যাপ্লিকেশনটি কোনও বিষয়ে প্রতিক্রিয়া জানাবে এবং System.exit () এ কল করুন।
নিশ্চিত হন:
উত্তর হ'ল System.exit (), তবে প্রোগ্রামটি বন্ধ হয়ে যাওয়ার কারণে করার মতো কোনও ভাল জিনিস নয়। কোনও পরিষ্কার-পরিচ্ছন্নতা, ধ্বংস করার জন্য আপনি যা করতে চান তা ঘটবে না।
প্রশ্নের দুটি সহজ উত্তর আছে।
এটি "পেশাদার উপায়":
//This just terminates the program.
System.exit(0);
এটি একটি আরো clumsier উপায়:
//This just terminates the program, just like System.exit(0).
return;
System.exit(0); return;খুব ভাল, রিটার্নটি সিস্টেমটি প্রস্থান হওয়ার আগে কোনও রথার কোড চালানো থেকে বাধা দেয়, অন্যথায় আপনার একটি পতাকা লাগবে (..i.e. if (!called_exit) { further code after exit statement }
Runtime.getCurrentRumtime().halt(0);
halt: "এই পদ্ধতিটি চূড়ান্ত সতর্কতার সাথে ব্যবহার করা উচিত। exitপদ্ধতির বিপরীতে , এই পদ্ধতিটি শাটডাউন হুকগুলি শুরু করার কারণ ঘটায় না এবং চূড়ান্তকরণ-অন-প্রস্থান সক্রিয় করা থাকলে অবিচলিত ফাইনালাইজারগুলি চালায় না If যদি শাটডাউন ক্রমটি হয়েছে ইতিমধ্যে সূচনা করা হয়েছে তখন এই পদ্ধতি কোনও চলমান শাটডাউন হুক বা চূড়ান্তকরণকারীদের কাজ শেষ করার জন্য অপেক্ষা করে না। " সংক্ষেপে, আপনার ব্যবহারের প্রয়োজন হবে না halt, আপনার পছন্দ করা উচিত exit।
System.exit()আপনি যা চান তা করবে তবে বেশিরভাগ পরিস্থিতিতে আপনি সম্ভবত একটি থ্রেড থেকে প্রস্থান করতে চান এবং মূল থ্রেডটি জীবিত রেখে যেতে চান। এটি করে আপনি কোনও কাজ শেষ করতে পারেন, তবে অ্যাপটি আরম্ভ না করেই অন্য কোনও কাজ শুরু করার সক্ষমতাও রাখতে পারেন।
কে System.exit (বাতিল); তত্ক্ষণাত্ প্রক্রিয়াটি প্রস্থান করুন।
এটি সঠিক উপায়ে এটি করা উচিত:
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();
}
}