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

标签 java eclipse maven agents-jade

我用 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命令在编辑 pom.xml 文件后更改 eclipse 项目的构建参数?

最佳答案

JADE 没有任何此类插件可用,因为它不是广泛使用的框架,也没有人愿意为它开发插件。但是有一种解决方法可以以常规方式运行它,但这只有在您已经知道 <fully-qualified-agent-class> 的情况下才有效。名字。你可以做的是编写一个扩展 Thread 的类从那Threadrun()方法通过传递 <fully-qualified-agent-class> 来调用 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 文件,从您的主方法或任何其他方式调用此线程。

关于Java 代理开发框架 - Eclipse 和 Maven 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27620218/

相关文章:

git - 使用 Jenkins/Git 增加 Maven 项目版本

java - wsdl2java - 如何忽略 cxf-codegen-plugin 中的特定模式并添加依赖项

java - 驱动类(Main class)是关联、聚合还是组合?

eclipse无法格式化html文件

java - 将字符串 ("2022-12-23T07:20:00") 时间转换为 ZonedDateTime

java - macOS 上的 Eclipse 安装

java - SHA-1 提交 ID 的缩写形式

java - 编译 Hadoop native - 在 Maven 插件中发现错误

java - 在 Java 中生成一个介于 0 和无穷大之间的随机 double

java - 如何对动态呈现 html 和 css 的 Java 代码进行单元测试?