2011-12-29 7 views
0

実行中のJavaアプリケーションで特定のメソッドを呼び出す方法はありますか?コマンドプロンプトからアプリケーションの同じインスタンス上でJavaアプリケーションを実行する方法を呼び出す

たとえば、私はJavaアプリケーションを実行していますが、アプリケーションの同じインスタンスでメソッドuk.co.planetbeyond.chatservice.Stopper.stop()を呼び出したいとします。それをしてもいいですか?

+0

これを最初に実行しようとしましたか? – Lion

+0

私はそれをたくさん見つけましたが、答えが見つかりませんでした。 –

答えて

2

これを行う最も簡単な方法は、JMXを使用することです。 MBeanに呼びたいメソッドを公開するだけです。次に、メソッドを呼び出すJMXクライアントを使用できます。 JDKの一部であるJConsoleを使用することも、独自のコマンドラインアプリケーションを作成することもできます。

command line JMX clientもあります。

2

ただし、Javaアプリケーションを持つことができます:

  • は、(例えば)new Scanner(System.in)
  • と、コマンドラインからの入力を聞くには、さまざまなを使用して、入力用ポートをリッスンプロトコルは、httpが一般的な選択です。
  • ファイルの外観を見る(ラメだが動作するだろう)

実行すると、JVMは探しているものだけを認識します。つまり、「プル」できます。それに何か「押し込む」ことはできません。

+0

なぜですか?デバッグを有効にすると、スレッドを完全に停止し、その中のメソッドを呼び出すことができます。 – alf

+0

はい、デバッグでたくさんのことができます。私は一般的な状況(デバッグが有効になっていない場合) – Bohemian

関連する問題