我使用JADE框架创建了一个maven项目作为依赖项,但是这个框架需要不同的命令来执行jar而不是普通的java应用程序。
构建
javac –classpath <JADE-classes> Class_name.java
生成
java –classpath <JADE-classes> jade.Boot <agent-local-name>:<fully-qualified-agent-class>
<fully-qualified-agent-class>
为package_name.Class_name
或
java –cp lib\jade.jar jade.Boot [options] [AgentSpecifierlist]
是否可以使用maven插件构建 runnable jar ,所以我只需输入java -jar myjar.jar
而不是上面的命令?
编辑 pom.xml 文件后,mvn eclipse:eclipse
命令会更改eclipse项目的构建参数吗?
答案 0 :(得分:2)
没有任何这样的插件可用于JADE,因为它没有广泛使用的框架,任何人都没有费心为它开发插件。但是有一种解决方法可以按常规方式运行它,但这只有在您已经知道<fully-qualified-agent-class>
名称的情况下才有效。你可以做的是编写一个扩展Thread
的类,并从Thread
的{{1}}方法调用JADE框架代理,方法是传递run()
作为参数。请参阅下面的示例。
jadeBootThread.java
<fully-qualified-agent-class>
现在你可以通过使用eclipse插件等创建runnable jar文件,从main方法或任何其他方式调用此线程。
答案 1 :(得分:0)
更好的解决方案:
public class Example03 {
public static void main(String[] args){
String host;
int port;
String platform = null; //default name
boolean main = true;
host = "localhost";
port = -1; //default-port 1099
Runtime runtime = Runtime.instance();
Profile profile = null;
AgentContainer container = null;
profile = new ProfileImpl(host, port, platform, main);
// create container
container = runtime.createMainContainer(profile);
// create the agents
try {
AgentController agent1 = container.createNewAgent(
"Agent1",
routing.TransportAgent.class.getName(),
args);
AgentController agent2 = container.createNewAgent(
"Agent2",
routing.TransportAgent.class.getName(),
args);
// create the GUI
AgentController rma = container.createNewAgent("rma", "jade.tools.rma.rma", null);
// start the agents
agent1.start();
agent2.start();
rma.start();
} catch(StaleProxyException e) {
throw new RuntimeException(e);
}
}
}