我创建了一个 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(使用前将#替换为@)