JADE无法找到代理商

时间:2012-02-14 22:16:48

标签: java agents-jade

我是JADE的新手,加载代理商时遇到了一些麻烦。

我创建了一个新的IntelliJ项目并在“Dependencies”中添加了“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但是再次没有运气。任何帮助将不胜感激。

非常感谢

6 个答案:

答案 0 :(得分:6)

启动时需要传递类的完全限定名称。在我的旧版JADE上,HelloWorldAgent位于examples.hello包中。因此,您应该指定程序参数:-gui testAgent:examples.hello.HelloWorldAgent

答案 1 :(得分:3)

只需在类名

之前添加包名称

-gui testAgent:packageName.HelloWorldAgent

答案 2 :(得分:1)

您需要添加:

-gui nameAgent:packageName.className

答案 3 :(得分:0)

似乎我放置“jade.jar”和“commons-codec-1.3.jar”的位置是问题(我最初将它们放在/ Library / Java / Extensions(在OSX lion中))。我尝试删除它们,将它们放在其他地方并再次尝试,现在它可以工作了。不完全确定为什么介意!

答案 4 :(得分:0)

在我的情况下,座席名称后面有一个多余的空格:

-gui nameAgent: packageName.className

在删除空间并将项目添加到类路径后,一切正常。

-gui nameAgent:packageName.className

答案 5 :(得分:0)

我遇到了另一个问题,所以我想在这里写下解决方案,以便对他人有所帮助。 在使用“ -cp”或“ -classpath”编写类路径时,将路径写到仅输出文件夹名称,并且不要包括为名称空间创建的文件夹。例如,如果您的代理类位于名称空间“ sample.namespace”中,则javac命令将创建一个类似于“ bin \ sample \ namespace”的目录结构,并将文件放在此处。在这种情况下,不要在类路径中包括“ sample \ namespace”。只是直到“ bin”文件夹的路径,输出文件夹(bin)的名称可以不同。