在 JADE 中创建代理

我在使用 JADE 创建代理时遇到问题。


我的结构

/

  Applications

    jade

      lib

        jade.jar

        jadeExamples.jar

      src

        examples

          hello

            HelloWorldAgent.class

            HelloWorldAgent.java

我的档案HelloWorldAgent.java

package examples.hello;


import jade.core.Agent;


public class HelloWorldAgent extends Agent {

    protected void setup() {

        System.out.println("Hello! My name is "+getLocalName());

    }

}

我创建代理的步骤如下:

/Applications/jade/src/examples/hello $ javac *.java


/Applications/jade/src/examples/hello $ java jade.Boot -gui -agents fred:examples.hello.HelloWorldAgent


我的类路径

/Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home:/Applications/jade/lib/jade.jar:/Applications/jade/lib/jadeExamples.jar:/Applications/jade/src/


我的问题

如果我更改 HelloWorldAgent 中的消息(例如System.out.println("Hello ! My name is "+getLocalName());),当我运行代理时它不会更新(控制台显示Hello World! My name is fred)。当我在 hello 文件夹中创建一个新类时,我在 GUI 中找不到我的代理。

我错过了什么?


largeQ
浏览 91回答 1
1回答

UYOU

您没有正确设置类路径。您的类路径可以包含两种条目类型:因此,类路径包含:JAR 文件,以及到包层次结构顶部的路径。在您的情况下,您仅参考以下.jar文件:/Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home/Applications/jade/lib/jade.jar/Applications/jade/lib/jadeExamples.jar请注意,您的工作路径/Applications/jade/src/examples/hello/不在类路径中。这意味着您的自定义翡翠类不可见/不可访问。要解决您的问题,您必须在类路径中添加要使用的其他路径。通常,您使用目录.来指示您希望类路径中的“当前目录”。请记住,您jadeExamples.jar的类路径中有 JAR 文件。当您有.class更改的HelloWorldAgent类的文件时,可能不清楚 JVM 正在加载哪个类,是 JAR 文件中的类还是.class文件系统中的文件。不要在类路径中两次提供具有相同包的相同类,甚至不要jadeExamples.jar使用新更改的 JAR 文件更改该文件(这可能会更加令人困惑)。相反,在您的包/命名空间/目录中创建一个新代理并加载它-agents foobar:your.package.and.ClassName,但确保正确设置类路径。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java