我有一个Java程序可以转换Image并生成这些图像的特征 (平均红色,Stdev红色等) 我这样运行程序 java -jar TheProgram.jar Picture.jpg 哪个产生这个输出 FileName [feature1,feature2,..]
但是我需要将这些输出处理成更合适的格式,我将使用Java来处理输出。问题是我不知道如何在Java源代码中调用TheProgram.jar。
答案 0 :(得分:0)
一种方法是使用
Class jarClass = Class.forName("com.className");
ClassName c = jarClass.newInstance();
Method mainMethod = Class.getMethod("main", String[]);
Method.invoke(c, "Picture.jpg");
将ClassName替换为main方法所在jar中Class的名称。
答案 1 :(得分:0)
首先,运行程序的方法如下:
现在写一个这样的类:
import com.example.TheProgramMain;
public class MyClass {
...
public void runIt() {
String[] args = ...;
TheProgramMain.main(args);
}
}
(你可以自动化,即使用反射,但没有太多意义。)
这很容易。硬位将拦截现有程序的输出,以便您可以对其进行后处理。你如何做到这将取决于现有程序的工作原理......
请注意,如果您了解程序的内部设计,您可能会找到其他方法来“驱动”它;例如通过实例化类并调用公共实例方法来进行处理,而无需编写输出。