我在使用 JADE 创建代理时遇到问题。我的结构/ Applications jade lib jade.jar jadeExamples.jar src examples hello HelloWorldAgent.class HelloWorldAgent.java我的档案HelloWorldAgent.javapackage 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 中找不到我的代理。我错过了什么?
1 回答
UYOU
TA贡献1878条经验 获得超4个赞
您没有正确设置类路径。您的类路径可以包含两种条目类型:
因此,类路径包含:
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
,但确保正确设置类路径。
添加回答
举报
0/150
提交
取消