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

2023-12-07

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

Build:

javac –classpath <JADE-classes> Class_name.java

Run:

java –classpath <JADE-classes> jade.Boot <agent-local-name>:<fully-qualified-agent-class>

Where <fully-qualified-agent-class> is package_name.Class_name

or

java –cp lib\jade.jar jade.Boot [options] [AgentSpecifierlist]

是否有可能建立一个可运行的罐子使用 Maven 插件,所以我只需输入java -jar myjar.jar而不是上面的命令?

Would mvn eclipse:eclipse编辑后命令更改 eclipse 项目的构建参数pom.xml file?


JADE 没有任何这样的插件可用,因为它不是广泛使用的框架,而且没有人费心为它开发插件。但是有一个解决方法可以以传统方式运行它,但这只有在您已经知道您的<fully-qualified-agent-class>名称。你能做的就是编写一个扩展的类Thread从此Thread's run()方法通过传递调用 JADE 框架代理<fully-qualified-agent-class>作为参数。请参阅下面的示例。

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 方法或任何其他方式调用此线程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 代理开发框架 - Eclipse 和 Maven 集成 的相关文章

随机推荐

  • 分区数量如何影响“wholeTextFiles”和“textFiles”?

    在spark中 我明白了如何使用wholeTextFiles and textFiles 但我不确定何时使用哪个 到目前为止我所知道的是 当处理不按行分割的文件时 应该使用wholeTextFiles 否则使用textFiles 我认为默认
  • 撤销 Azure AD B2C 上的刷新令牌

    我不知道是否有解决方案可以在以下情况下撤销刷新令牌 用户使用重置密码策略重置自己的密码 用户使用基于Graph API的特定表单更改自己的密码 我认为出于安全原因必须实施它 但我不知道现在是否可能 如果不可行的话什么时候可以使用 提前致谢
  • 创建实现 ContainerAwareInterface 的服务

    当我扩展 ContainerAware 或实现 ContainerAwareInterface 时 该服务不会调用 setContainer class CustomService implements ContainerAwareInte
  • 将字符串参数传递到点击绑定中,同时保留 Knockoutjs 中的默认参数

    我想将参数传递给单击时调用的函数 同时保留默认参数 问题出在啤酒花部分 我试着做remove
  • Python 的 itertools.product() 的效率

    所以我正在寻找不同的方法来计算笛卡尔积n数组 我遇到了使用以下代码的相当优雅的解决方案 此处为 SO import itertools for array in itertools product arrays print array 看着
  • XSL:列表分为几列

    请帮帮我 有一个节点列表
  • Android - 动态添加片段

    我浏览了互联网 只找到了 Android 片段的示例 它们被放置在适当的位置 比如其中两个 一个作为列表 第二个是显示列表中所选项目的详细信息 我的目标是拥有经典的 android 活动 并且我希望能够使用特定的 GUI 动态添加预先准备的
  • 3rd 方库和 Py2exe

    我将如何使用 py2exe 将 Beautiful soup 与我的代码一起捆绑到 exe 中 我现在用于 setup py 的代码是 from distutils core import setup import py2exe equiv
  • 如何让路线绘制更加高效?

    这是我用来绘制路线的代码 当我有 1000 个点时 路线会严重减慢用户界面 也许有人可以提供一个代码片段或一个链接来解释如何更有效地绘制路线 我知道解决这个问题的一种方法是缓存位图路径 但不知道该怎么做 public class PathO
  • 获取塔 GSM 位置 lat lng

    我想知道一种方法或方法来查找手机所连接的小区的位置 GSM 小区 这是我的课 package com example signal import java io File import java io FileOutputStream im
  • pageinit 上的 jQuery 移动弹出窗口

    我希望页面加载后立即打开一个弹出窗口 但似乎被旋转轮卡住了 这是一个小提琴手来演示该问题 任何帮助将不胜感激 http jsfiddle net Ohpyx UGfXG 我正在使用的代码是 document live pageinit fu
  • 使用 Groovy 连接字段后,CSV 上出现引号

    我正在使用 groovy 连接 CSV 中的两个字段 它工作正常 只是连接字段显示有引号 有什么办法可以解决这个问题吗 ant mkdir dir target new File target UpsertCheckDeals csv wi
  • Tensorflow 如何处理一列中具有多个输入的分类特征?

    例如我有一个数据如下csv format csv col0 col1 col2 col3 1 A E A C 3 0 B D F 2 2 C 2 用逗号分隔的每一列代表一个特征 通常 一项功能是独热的 例如col0 col1 col3 但在
  • Google Cloud Functions - 通过 HTTP 上传到 Google Cloud Storage

    我正在尝试使用 Google Cloud Function 处理文件上传 该函数使用 Busboy 解析多部分表单数据 然后上传到 Google Cloud Storage 我不断收到ERROR Error ENOENT no such f
  • 如何使用 ProgressMonitorInputStream

    我知道我一定错过了一些非常明显的东西 但是每当我在复制文件时尝试使用进度监视器输入流时 我永远不会弹出进度对话框 我看到的示例除了将输入流包装在 ProgressMonitorInputStream 中之外似乎没有做太多事情 文档说 这将创
  • 基于文件的进程通信的 Java 文件锁定机制

    我有两个 java 进程 JAR 一个每 1 分钟写入一个文本文件 另一个正在读取该文件并调用 Web 服务将数据存储在数据库中 有什么办法可以在文件处于写入模式时锁定文件吗 我观察到 当wvdial我认为正在拨打调制解调器 它会在 var
  • 在 C# 中为 p/invoke 创建基本的 C++ .dll

    我是一名 C 程序员 不幸的是 由于年龄和经验的限制 我在学习中没有机会经历 C 编程时代 其中很多内容对我来说是神秘而新鲜的 并不是在这里争论学习这些知识的重要性 而是我需要一些帮助来解决这本应该是一件微不足道的事情 PROBLEM 我需
  • 405 Net::HTTP 请求上不允许使用方法 [ruby on Rails]

    我正在尝试使用以下代码验证是否存在远程网址 endpoint uri URI parse endpoint url endpoint http Net HTTP new endpoint uri host endpoint uri port
  • 将 Django 数据库从 SQLite 迁移到 MySQL 的最佳方法是什么?

    我需要将我的数据库从 sqlite 迁移到 mysql 而各种工具 脚本对我来说太多了 无法轻松找到最安全 最优雅的解决方案 这对我来说似乎不错http djangosnippets org snippets 14 但似乎距离更新已经过去了
  • Java 代理开发框架 - Eclipse 和 Maven 集成

    我创建了一个 Maven 项目JADE框架作为依赖项 但该框架需要与普通 java 应用程序不同的命令来执行 jar Build javac classpath