2012-03-29 15 views
3

実行可能なJARファイルを複数のスレッド/コアで実行する必要があります。 JARファイルはRunnableを実装していません。私はそれを行う方法を探していて、見つけていない。 JARファイルでソースコードにアクセスせずに複数のスレッド/コアを使用できるようにすることは可能ですか?複数のスレッドでjarファイルを実行するにはどうすればよいですか?

現在、 JARファイルを通常どおりに実行すると、単一のコアのみが使用されます。

+2

Jarファイルには、Javaクラスとその他のリソースが含まれています。 JarはJavaクラスではないため、Runnableを実装することはできません。あなたの質問を編集して一歩を踏み出し、達成しようとしていることの背景を説明してください。 – Gray

答えて

8

魔法のようにプログラムを作る方法はありません(Java JARファイルや他の方法でパッケージ化されていても問題ありません)。自動的に複数のコアを使用します。プログラムは、複数のコアを使用するために書かれていなければなりません。他の方法はありません。

3

いいえ、できません。いくつかのjavaプロセスを実行して、同じJARを異なるスレッドで実行することもできますが、これは必要なものではありません。

1

jarが実行可能なjarの場合、mainメソッド(jarファイルのマニフェストにメインクラスがリストされています)があります。あなた自身のRunnableインスタンスでこのmainメソッドを呼び出すことができます。

ただし、このjarのクラスが適切な同期なしに静的リソースを使用する場合、この戦略は機能しません。この場合、Runnableごとに別々のClassLoaderをセットアップし、独自の分離ClassLoaderでjarの各インスタンスを実行することができます(リフレクションを使用してmainメソッドを呼び出す必要があります)。

関連する問題