小编典典

Java代理开发框架-Eclipse和Maven集成

java

我使用JADE框架作为依赖项创建了一个maven项目,但是与普通的Java应用程序相比,该框架需要不同的命令来执行jar。

建立:

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插件构建 可运行的jar, 所以我只需键入java -jar myjar.jar而不是上面的命令?

mvn eclipse:eclipse编辑命令后Eclipse项目的变化构建参数 的pom.xml 文件?


阅读 272

收藏
2020-11-23

共1个答案

小编典典

JADE没有可用的此类插件,因为它没有得到广泛使用的框架,而且没有人愿意为此开发一个插件。但是有一种解决方法可以按常规方式运行它,但这仅在您已经知道自己的<fully- qualified-agent- class>名字的情况下才有效。您可以做的是编写一个扩展的类,Thread并从Threadrun()方法中通过传递<fully- qualified-agent-class>as参数来调用JADE框架代理。请参阅下面的示例。

jadeBootThread.java

public class jadeBootThread extends Thread {

private final String jadeBoot_CLASS_NAME = "jade.Boot";

private final String MAIN_METHOD_NAME = "main";

//add the <agent-local-name>:<fully-qualified-agent-class> name here;
// you can add more than one by semicolon separated values.
private final String ACTOR_NAMES_args = "Agent1:com.myagents.agent1";

private final String GUI_args = "-gui";

private final Class<?> secondClass;

private final Method main;

private final String[] params;

public jadeBootThread() throws ClassNotFoundException, SecurityException, NoSuchMethodException {
    secondClass = Class.forName(jadeBoot_CLASS_NAME);
    main = secondClass.getMethod(MAIN_METHOD_NAME, String[].class);
    params = new String[]{GUI_args, ACTOR_NAMES_args};
}

@Override
public void run() {
    try {
        main.invoke(null, new Object[]{params});
    } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
       ex.printStacktrace();
    }

}
}

现在,您可以使用eclipse插件等创建可运行的jar文件,从而从您的main方法或任何其他方式调用此线程。

2020-11-23