为Java应用程序添加退出事件响应_MySQL
一个完整的Java应用程序,通常至少要有一个应用程序的结束点。对于一般程序来说,系统开发者根据需要和个人的偏好,会在程序结束位置,通过添加System.exit(0),或System.out(-1),来结束程序,或不加这些指令,让程序自然运行到结束。
如:下列典型代码
package untitled14;
/**
* This application is to demo how an applcation end
*/
public class Test {
public Test() {}
public static void main(String[] args) {
Test test1 = new Test();
//.................
System.out.println("hello world");
//Do something before system exit
System.exit(0);//也可以不写这句代码,让程序自然结束。
}
}
对于简单的应用系统,我们直接可以在System.exit(0)代码执行前,添加需要在应用程序退出前需要完成的工作,如:关闭网络连接,关闭数据库连接等。
然而,对于比较复杂的多线程应用,线程运行的状态较复杂,我们就很难预料程序何时结束,如何能在应用程序结束事件到来时,处理我们要做的工作呢?这就用到了Java对应用程序的退出的事件出处理机制。
对当前应用程序对象的获得,Java通过Runtime静态方法:Runtime.getRuntime()通过Runtime的 void addShutdownHook(Thread hook) 法向Java虚拟机注册一个shutdown钩子事件,这样一旦程序结束事件到来时,就运行线程hook,我们在实际应用时候,只要将程序需要完成之前做的一些工作直接通过线程hook来完成。具体演示代码如下:
/*****************************************************************************
本程序仅演示,如何在Java应用程序中添加系统退出事件处理机制
*****************************************************************************/
package untitled14;
import java.util.*;
import java.io.*;
/**
* This application is used to demo how to hook the event of an application
*/
public class Untitled1 {
public Untitled1() {
doShutDownWork();
}
/***************************************************************************
* This is the right work that will do before the system shutdown
* 这里为了演示,为应用程序的退出增加了一个事件处理,
* 当应用程序退出时候,将程序退出的日期写入 d:\t.log文件
**************************************************************************/
private void doShutDownWork() {
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
try {
FileWriter fw = new FileWriter("d:\\t.log");
System.out.println("Im going to end");
fw.write("the application ended! " + (new Date()).toString());
fw.close();
}
catch (IOException ex) {
}
}
});
}
/****************************************************
* 这是程序的入口,仅为演示,方法中的代码无关紧要
***************************************************/
public static void main(String[] args) {
Untitled1 untitled11 = new Untitled1();
long s = System.currentTimeMillis();
for (int i = 0; i //在这里增添您需要处理代码
}
long se = System.currentTimeMillis();
System.out.println(se - s);
}
}
在上述程序中,我们可以看到通过在程序中增加Runtime.getRuntime().addShutdownHook(new Thread()) 事件监听,捕获系统退出消息到来,然后,执行我们所需要完成工作,从而使我们的程序更健壮!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









iPhone のデフォルトの地図は、Apple 独自の地理位置情報プロバイダーである Maps です。マップは改善されていますが、米国外ではうまく機能しません。 Googleマップと比べて何も提供するものはありません。この記事では、Google マップを iPhone のデフォルトの地図として使用するための実行可能な手順について説明します。 Google マップを iPhone のデフォルトの地図にする方法 Google マップを携帯電話のデフォルトの地図アプリとして設定するのは、思っているよりも簡単です。以下の手順に従ってください – 前提条件 – 携帯電話に Gmail がインストールされている必要があります。ステップ 1 – AppStore を開きます。ステップ 2 – 「Gmail」を検索します。ステップ 3 – Gmail アプリの横にある をクリックします

Windows 11 で画像編集にフォト アプリを使用中に「変更を保存できません」エラーが発生した場合、この記事では解決策を紹介します。変更を保存できません。保存中にエラーが発生しました。後でもう一度試してください。この問題は通常、不正なアクセス許可設定、ファイルの破損、またはシステム障害が原因で発生します。そこで、この問題を解決し、Windows 11 デバイスで Microsoft フォト アプリを引き続きシームレスに使用できるようにするために、綿密な調査を行って最も効果的なトラブルシューティング手順をいくつかまとめました。 Windows 11で写真アプリへの変更を保存できないエラーを修正する 多くのユーザーがさまざまなフォーラムでMicrosoftフォトアプリのエラーについて話し合っています

Windows では、フォト アプリは写真やビデオを表示および管理するのに便利な方法です。このアプリケーションを通じて、ユーザーは追加のソフトウェアをインストールすることなく、マルチメディア ファイルに簡単にアクセスできます。ただし、写真アプリの使用時に「形式がサポートされていないため、このファイルを開けません」というエラー メッセージが表示されたり、写真やビデオを開こうとしたときにファイルが破損したりするなど、ユーザーが何らかの問題に遭遇することがあります。この状況はユーザーにとって混乱を招き不便になる可能性があり、問題を解決するには調査と修正が必要になります。ユーザーが写真アプリで写真またはビデオを開こうとすると、次のエラーが表示されます。申し訳ありませんが、この形式が現在サポートされていないか、ファイルがサポートされていないため、フォトではこのファイルを開くことができません

Apple Vision Pro ヘッドセットはコンピュータとネイティブ互換性がないため、Windows コンピュータに接続するように設定する必要があります。 Apple Vision Pro は発売以来、最先端の機能と充実した操作性を備えた大ヒット商品です。その理由は簡単にわかります。ただし、お使いの PC に合わせて調整することはできますが、その機能は AppleOS に大きく依存しているため、機能は制限されます。 AppleVisionPro をコンピュータに接続するにはどうすればよいですか? 1. システム要件を確認します 最新バージョンの Windows 11 が必要です (カスタム PC および Surface デバイスはサポートされていません) 64 ビット 2GHZ 以上の高速プロセッサをサポート 高性能 GPU、最大

Microsoft ペイントは Windows 11/10 では動作しませんか?これは一般的な問題のようで、それを修正するための優れた解決策がいくつかあります。 MSPaint を使用しようとすると、機能しない、または開かないというユーザーからの苦情が寄せられています。アプリのスクロールバーが機能しない、貼り付けアイコンが表示されない、クラッシュなどが発生します。幸いなことに、Microsoft ペイント アプリに関する問題の解決に役立つ、最も効果的なトラブルシューティング方法をいくつか集めました。 Microsoft ペイントが動作しないのはなぜですか? MSPaint が Windows 11/10 PC で動作しない理由としては、次のようなことが考えられます。 セキュリティ識別子が破損しています。ハングアップしたシステム

iPhone の Shazam アプリに問題がありますか? Shazam は、曲を聞いて曲を見つけるのに役立ちます。ただし、Shazam が正常に動作しない場合、または曲が認識されない場合は、手動でトラブルシューティングを行う必要があります。 Shazam アプリの修復にはそれほど時間はかかりません。したがって、これ以上時間を無駄にすることなく、以下の手順に従って Shazam アプリの問題を解決してください。解決策 1 – 太字テキスト機能を無効にする iPhone の太字テキストが、Shazam が正しく動作しない原因である可能性があります。ステップ 1 – これは iPhone の設定からのみ実行できます。それで、開けてください。ステップ 2 – 次に、そこにある「ディスプレイと明るさ」設定を開きます。ステップ 3 – 「太字テキスト」が有効になっている場合

携帯電話に時計アプリがありませんか?日付と時刻は iPhone のステータス バーに引き続き表示されます。ただし、時計アプリがないと、世界時計、ストップウォッチ、目覚まし時計、その他多くの機能を使用できません。したがって、見つからない時計アプリを修正することは、やるべきことリストの一番上に置く必要があります。これらの解決策は、この問題の解決に役立ちます。解決策 1 – 時計アプリを配置する 誤って時計アプリをホーム画面から削除した場合は、時計アプリを元の場所に戻すことができます。ステップ 1 – iPhone のロックを解除し、App ライブラリ ページに到達するまで左にスワイプを開始します。ステップ 2 – 次に、検索ボックスで「時計」を検索します。ステップ 3 – 検索結果に以下の「時計」が表示されたら、それを長押しして、

ユーザーは、壁紙エンジンを使用してさまざまな壁紙を取得できます。多くのユーザーは、壁紙エンジンが終了すると壁紙が消えてしまう理由を知りません。動的壁紙は、壁紙をインストールしたソフトウェアがオンになっている場合にのみ、デスクトップ上で実行できます。壁紙エンジンが終了すると壁紙が消えてしまうのはなぜですか? 1. 動的壁紙は、壁紙をインストールしたソフトウェアがオンになっている場合にのみデスクトップで実行できます。 2.WallpaperEngine は元の壁紙を上書きします。もちろん、終了すると壁紙は消えます。 3. ファイル形式が画像タイプでない限り、壁紙はオフになった後も残ります。画像タイプは何らかの方法で取得できますが、動的ではありません。 4. Windows にはビデオや動画像が壁として存在しません。
