6

私はJADEを初めて使用し、エージェントの読み込みに少し問題があります。

新しいIntelliJプロジェクトを作成し、「依存関係」に「jade.jar」と「commons-codec-1.3.jar」(JADE 4.1.1を使用)を追加し、エクスポートボックスにチェックマークを付けました(これらなしでも試しました)チェックマーク)。次に、例に含まれている「HelloWorldAgent.java」をsrcに追加しました。実行構成を次のように設定します。

  • メインクラス:jade.Boot
  • プログラム引数:-gui testAgent:HelloWorldAgent
  • モジュールのクラスパスを使用します:jadeCW(私のプロジェクト名)

この構成を使用して実行すると、JADEガイは起動しますが、「HelloWorldAgent」が見つかりません。出力は次のとおりです。

14-Feb-2012 21:43:08 jade.core.Runtime beginContainer
INFO: ----------------------------------
    This is JADE 4.1.1 - revision 6532 of 2011/11/18 16:21:34
    downloaded in Open Source, under LGPL restrictions,
    at http://jade.tilab.com/
----------------------------------------
Retrieving CommandDispatcher for platform null
14-Feb-2012 21:43:08 jade.imtp.leap.LEAPIMTPManager initialize
INFO: Listening for intra-platform commands on address:
- jicp://192.168.1.66:1099

14-Feb-2012 21:43:08 jade.core.BaseService init
INFO: Service jade.core.management.AgentManagement initialized
14-Feb-2012 21:43:08 jade.core.BaseService init
INFO: Service jade.core.messaging.Messaging initialized
14-Feb-2012 21:43:08 jade.core.BaseService init
INFO: Service jade.core.resource.ResourceManagement initialized
14-Feb-2012 21:43:08 jade.core.BaseService init
INFO: Service jade.core.mobility.AgentMobility initialized
14-Feb-2012 21:43:08 jade.core.BaseService init
INFO: Service jade.core.event.Notification initialized
14-Feb-2012 21:43:08 jade.mtp.http.HTTPServer <init>
INFO: HTTP-MTP Using XML parser com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser
14-Feb-2012 21:43:08 jade.core.messaging.MessagingService boot
INFO: MTP addresses: http://unknown-00-19-c5-7e-cb-4b.home:7778/acc
14-Feb-2012 21:43:08 jade.core.AgentContainerImpl startBootstrapAgents
SEVERE: Cannot create agent testAgent: Class HelloWorldAgent for agent ( agent-identifier :name testAgent@192.168.1.66:1099/JADE ) not found [nested java.lang.ClassNotFoundException: HelloWorldAgent]
14-Feb-2012 21:43:08 jade.core.AgentContainerImpl joinPlatform
INFO: --------------------------------------
Agent container Main-Container@192.168.1.66 is ready.

重要な問題は明らかに次のとおりです。

SEVERE: Cannot create agent testAgent: Class HelloWorldAgent for agent ( agent-identifier :name testAgent@192.168.1.66:1099/JADE ) not found [nested java.lang.ClassNotFoundException: HelloWorldAgent]

eclipseを使用してみましたが、同じ問題が発生します。以前のバージョンのJADEも使用してみましたが、うまくいきませんでした。どんな助けでも大歓迎です。

どうもありがとう

ダン

4

6 に答える 6

6

クラスを開始するときに、クラスの完全修飾名を渡す必要があります。私の古いバージョンのJADEでは、HelloWorldAgentexamples.helloパッケージに含まれています。したがって、プログラム引数を指定する必要があります-gui testAgent:examples.hello.HelloWorldAgent

于 2012-02-16T12:34:32.767 に答える
3

クラス名の前にパッケージ名を追加するだけです

-gui testAgent:packageName.HelloWorldAgent

于 2013-08-19T23:00:08.840 に答える
1

追加する必要があります:

-gui nameAgent:packageName.className
于 2014-10-08T15:22:48.800 に答える
0

「jade.jar」と「commons-codec-1.3.jar」を配置した場所が問題だったようです(元々は/ Library / Java / Extensions(OSX lion)に配置しました)。私はそれらを削除し、別の場所に置いて再試行しましたが、今は機能します。なぜ気にするのか完全にはわかりません!

于 2012-02-16T23:31:39.647 に答える
0

私の場合、エージェント名の後に余分なスペースがありました。

-gui nameAgent: packageName.className

スペースを削除してプロジェクトをクラスパスに追加した後、すべてが正しく機能しました。

-gui nameAgent:packageName.className
于 2019-04-19T17:28:20.883 に答える
0

私は別の問題に直面していたので、誰かを助けることができるように、ここでその解決策を書こうと思いました。「-cp」または「-classpath」を使用してクラスパスを書き込むときは、出力フォルダー名までのパスを記述し、名前空間用に作成されたフォルダーを含めないでください。たとえば、エージェントクラスが名前空間 "sample.namespace"にある場合、javacコマンドは "bin \ sample \ namespace"のようなディレクトリ構造を作成し、そこにファイルを配置します。この場合、クラスパスに「sample\namespace」を含めないでください。「bin」フォルダまでのパスだけで、出力フォルダ(bin)の名前が異なる場合があります。

于 2019-05-25T19:39:02.253 に答える