私はJavaアプリケーションを開発しています。ここでは、バッチファイルをアップロードしてAPIを休止する必要があります。私はコマンドプロンプトから必要なときにアプリケーションを停止したいが、アプリケーションがファイルをアップロードするプロセスにある場合、それを完了しなければならず、別のファイルのアップロードを開始する前に停止しなければならない。Javaアプリケーションを正常にコマンドプロンプトから停止する方法
答えて
あなたは、アプリケーションの終了コードJVMのシャットダウンフックでisUploadingフラグのクイックチェックを行うことができます。 falseの場合は、終了します。 trueの場合は、アップロードプロセスが完了するのを待つか、タイムアウトになります。
raychzにお答えいただきありがとうございます。私は2つのフラグを使用しました。以下は私が使用したサンプルコードです。 – jaswanth
あなたのプログラムは1つのスレッドで実行されるため、いつでも停止することはできません。したがって、すべてのタスクを指定された順序で完了する必要があります。
ファイルのリストをアップロードするときに、ファイルがバックグラウンドでアップロードされている間に、あるスレッドで前面に何らかのリスナーを提供できます。スレッド1が終了する必要のある情報を受け取ると、スレッド2が2番目のファイルのアップロードを開始する前に何らかの種類のグローバルブール値を設定することができます。
アップロードプロセスをバックグラウンドスレッドにすると、そのプロセスでプログラムを変更できます。あなたは優雅に、一般的にプログラムを終了するのドキュメントを探していた場合、それはここで見つけることができ
:http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#exit%28int%29
あなたの答えをありがとう。シャットダウンフックを使用して実装し、それが動作していると言ったようにグローバルブール値を使用しました。 – jaswanth
パブリッククラスメイン{
public static void main(String[] args) {
Runtime r = Runtime.getRuntime();
r.addShutdownHook(new ShutdownHook());
while(Flag.flag){
System.out.println("Application is still running......");
}
if(!Flag.flag) {
System.out.println("goin to exit the application");
Flag.shutdownFlag = false;
return;
}
}
}
パブリッククラスフラグ{
public static boolean flag = true;
public static boolean shutdownFlag = true;
}
パブリッククラスShutdownHookが延びるスレッド{
public void run() {
System.out.println("Shutdown hook is initiated");
Flag.flag = false;
while (Flag.shutdownFlag) {
System.out.println("Waiting for application to complete the task..");
}
}
私はコマンドプロンプトでjarを実行しています。アプリケーションを停止するとすぐに、コマンドプロンプトでctrl + cを入力するだけです。
- 1. コールバック内からPythonサウンドデバイスを正常に停止する方法
- 2. Akka Clusterメンバーをスーパーバイザから正常に停止する方法
- 3. koajsサーバーの正常な停止方法
- 4. ユーザーにJavaアプリケーションを停止させる方法
- 5. Openshift内からアプリケーションを停止する方法
- 6. アプリケーションからの通知を停止する方法
- 7. アプリケーションから生成されたログを停止する方法
- 8. Javaでスレッドを停止、一時停止、キャンセルする方法
- 9. ビルドアボートでビルドステップ(プラグイン)を正常に停止
- 10. Java - ScheduledExecutorServiceを正しく停止する方法
- 11. スレッドをJavaで停止する方法
- 12. Javaスイングタイマーを停止する方法
- 13. Apache Tomcatからアプリケーションをアンデプロイ/停止する前にプロセス/スレッドを停止する
- 14. タイマー停止時に別のアプリケーションからボタンを無効にする方法
- 15. NSXMLParserを正常に停止しますか?
- 16. JDI:デバッガのようにJavaアプリケーション(JVM)を一時停止する方法
- 17. TGitCache.exeを正常に停止して開始するには
- 18. javaプログラムからtail -fコマンドを停止する方法はありますか?
- 19. コンテナ環境でLogbackを正常に停止する
- 20. Swtの停止ボタンでTestNGのJavaスレッドを停止する方法
- 21. ページが数秒間停止してから正常に読み込まれる
- 22. JavaアプリケーションからのRESTfulサービスの開始および停止
- 23. 動きのあるオブジェクトを正確に停止する方法
- 24. C#アプリケーションからWindowsでffmpegビデオキャプチャを一時停止/再開する方法
- 25. アプリケーションからのポーリングと終了を停止するメッセージの送信方法
- 26. JavaアニメーションからGIFを停止
- 27. YARNでSpark Streamingアプリケーションを正常に停止するにはどうすればよいですか?
- 28. コマンドプロンプトからアプリケーションの同じインスタンス上でJavaアプリケーションを実行する方法を呼び出す
- 29. Java Transaction:ロールバック後にプログラムを停止する方法は?
- 30. スクロールを停止するとメニューを停止する方法
非デーモンスレッドとJVMの終了方法に関するいくつかの調査を行うことをお勧めします。 https://stackoverflow.com/questions/2213340/what-is-daemon-thread-in-java – Steve