0

自分のmain()からJARファイルを実行したい。main()メソッドを持つAクラスがあるとしましょう。Aのメソッドは、別のファイルB.jarでmain()新しいメソッドを実行します。main()これは、A.jarのメソッドからB.jarファイルを実行するmain()方法です:ここ

問題は、B.jarJavaソースコードにアクセスできないことです。私が知る必要があるのは、B.jarmain()メソッドで実行されているスレッドの数です。

ここで、Javaアプリケーションで実行されているすべてのスレッドのリストを取得することについて別の議論がありました。

ここで必要なのは、B.jarによって生成されるスレッドのリストです。または、少なくともスレッドIDの配列。

4

3 に答える 3

0

JARプロセスのroot/parentスレッドを保持します。Bいつでも、これを使用してroot/parentください。作成されたスレッド数activeCount()を取得します。B

于 2012-10-14T15:24:30.107 に答える
0

このメソッドThread.activeCount()は、現在の のスレッド数を示しますThreadGroup。外部 jar 内のスレッドが新しいスレッド グループを定義しない場合、ランタイムはデフォルトでこのスレッドを呼び出しスレッド (つまり、スレッド) と同じグループに配置します。jar を実行する前後にこのメソッドを呼び出して、どれだけ変化するかを確認できます。

更新 - 新しい jar によって生成されたスレッドも知りたい場合Thread.enumerateは、両方の配列にあるスレッドのフィルターを前後に使用します。残りのスレッドは、jar ファイル内のクラスによって作成されたものである必要があります。

于 2012-10-14T14:40:37.377 に答える
0

リンク先の引用に従って別のプロセスで B.jar を実行している場合、そのスレッドはこのプロセスではなくそのプロセスにあり、それらにはまったくアクセスできません。なんらかの (奇妙な) 理由でスレッドにアクセスする必要がある場合は、現在の JVM で直接 B.jar の main() メソッドを (見つけて) 実行する必要があります。

于 2012-10-14T23:53:03.313 に答える