2016-12-22 2 views
0

私はプログラムで実行したい単純なJavaクラスを持っています。これは基本的にビデオプレーヤーです。また、TomcatのWebアプリケーションと共に展開されています。これは、特定のリンクをクリックすると実行されます。 。)(スタート;( - > { VideoPlayer.main(新しいString [] {})}())コントローラから、ここで私は新しいスレッドtomcat内のスタンドアロンアプリケーション

それを実行する方法を説明します

正常です。しかし、私がビデオプレーヤーを閉じるたびに、Tomcatも終了します。どのようにこれを修正するための任意のアイデア?

答えて

0

GUIを閉じると、おそらくSystem.exitが呼び出されます。 Tomcatは両方とも同じJVM上で動作しているため、Tomcatはダウンします。 System.exitを検索して削除してください

また、Webアプリケーションがビデオプレーヤーを起動するのに意味がないことにも注意してください。それについて考えてみましょう。ウェブアプリケーションが自分の開発ワークステーションで実行されなくなったら、ビデオはのサーバーで再生されます。誰も見ることができません。サーバーにはおそらくモニタが接続されていないこともあります。ほとんどの場合、開始するグラフィックス環境がないため、ビデオプレーヤーから一連の例外が発生し、初期化できないという一連の例外が発生します。

+0

あなたは正しいです!私がこのコード行を削除したとき、videoPanel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)は、プレーヤーを閉じるともう終了しません。ただし、このプレーヤーはまだバックグラウンドで実行されています。このプロセスをプログラム的に殺す方法はありますか? –

+0

また、私はこれが非常に醜いアプローチであることを知っています。 javafx webviewに埋め込まれたWebアプリケーションでIPカメラからのライブフィードを再生することはできません。 WebViewはプラグインとアプレットをサポートしていません。ここで私はプロジェクトのいくつかの詳細を投稿したので、あなたがチェックしたいかもしれないhttp://stackoverflow.com/questions/41262445/embed-ip-camera-feed-on-web-page-and-javafx-webviewの質問です私にもアイデアを教えてください。ありがとうございます:) –

+0

メディアプレーヤーを強制終了するには、さまざまなスレッドをすべてシャットダウンする必要があります。 GUIスレッド(デーモンスレッドではありません)をシャットダウンすることは事実上不可能です。起動したければ、再度起動する必要はありません。最良の戦略は、まったく新しいプロセスを起動し、次にEXIT_ON_CLOSEを使用することです。 –

関連する問題