我在eclipse中对JADE平台有点新意。我想创建多个代理,我已经放置了一个for循环并增加了计数器以创建代理,它曾经运行良好但是当我添加了ThiefAgent时,它没有工作。它只创建了一个PoliceAgent和一个ThiefAgent。 代码完美无缺,但它不会创建许多代理。
这是main.java代码:
public class Main {
public static void main(String[] args) {
/*********************************************************************/
Runtime rt=Runtime.instance();
ProfileImpl p=new ProfileImpl();
p.setParameter(Profile.MAIN_HOST, "localhost");
p.setParameter(Profile.GUI, "true");
ContainerController cc1=rt.createMainContainer(p);
/**************creation of 5 police agents*****************/
for(int i=1; i<6; i++)
{
AgentController ac1;
try {
ac1=cc1.createNewAgent("PoliceAgent"+i, "Agents.PoliceAgent", null);
ac1.start();
} catch (StaleProxyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**************creation of 3 thief agents*****************/
for(int j=1; j<4; j++)
{
AgentController ac2;
try {
ac2=cc1.createNewAgent("ThiefAgent"+j, "Agents.ThiefAgent", null);
ac2.start();
} catch (StaleProxyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
我尝试为两个代理程序设置一个For循环,但没有任何改变。 错误是什么?提前致谢。
答案 0 :(得分:1)
创建PoliceAgent课程:
public class PoliceAgent extends Agent{
@Override
public void setup()
{
System.out.println("Police agent name is: " +getAID().getName());
}
}
创建ThiefAgent类:
public class ThiefAgent extends Agent{
@Override
public void setup()
{
System.out.println("Thief agent name is: " +getAID().getName());
}
}
创建AgentWorker主类:
public class PoliceAgent{
public static void main(String... args){
Runtime runtime = Runtime.instance();
Profile profile = new ProfileImpl();
profile.setParameter(Profile.MAIN_HOST, "localhost");
profile.setParameter(Profile.GUI, "true");
ContainerController containerController = runtime.createMainContainer(profile);
for(int i=1; i<6; i++){
AgentController policeAgentController;
try {
policeAgentController = containerController.createNewAgent("PoliceAgent"+i, "ua.agent.PoliceAgent", null);
policeAgentController.start();
} catch (StaleProxyException e) {
e.printStackTrace();
}
}
for(int i=1; i<4; i++){
AgentController thiefAgentController;
try {
thiefAgentController = containerController.createNewAgent("ThiefAgent"+i, "ua.agent.ThiefAgent", null);
thiefAgentController.start();
} catch (StaleProxyException e) {
e.printStackTrace();
}
}
}
}
我在这段代码中没有看到错误,但我写了3个他们工作的课程。由于我没有看到整体情况,所以我只能说问题可能出在代理人和Jade的问题上。