9
Iはjava jade.Boot ...
で、すなわち、Javaプログラムに埋め込まれたJADEを実行しません。 今、私はJADEシステムを停止したいと思っていましたが、私はそれを行う良い方法を見つけました。 System.exit()を使用してプログラム全体を終了することはできますが、それは私がやりたいことではありません。停止JADEシステム(Javaエージェント)
私は、いくつかの異なるものを試してみました、と私は私のエージェントの動作を停止成功し、 が、スレッドのカップルは引き続き実行:AMS、DF、ウェブサーバ、JADEタイマーのディスパッチャ、いくつかの救出スレッドなど
私はそれをしたい理由は、私は私の エージェントシステムのためのいくつかのJUnitテストを持っているということです@Override
public void shutdown() {
// TODO This does not work yet..
try {
for (WeakReference<AgentController> acr : agents) {
AgentController ac = acr.get(); // jade.wrapper.AgentController
if (ac != null) ac.kill();
}
container.kill(); // jade.wrapper.AgentContainer
Runtime.instance().shutDown(); // jade.core.Runtime
} catch (StaleProxyException e) {
e.printStackTrace();
}
}
:
これが私の現在のシャットダウン方法がどのように見えるかです。
どのようなアイデアを達成するには?
は、私はまだ( 'jade.core.messaging.MessageManager $ Deliverer')を実行している救出の複数のインスタンスを持っています。これらの問題は、InterruptedExceptionsを無視するため、実行中のスレッドを強制終了できないということです。 –