我可以使用以下命令行调用java类:
java -jar <my jar name>.jar -option1 <option> "<a string value>"
但是,我想从另一个Java程序调用它。
主类的名称是XYZ
我在我的项目中导入了jar作为依赖项。
答案 0 :(得分:1)
这在很大程度上取决于您是想将其作为单独的流程启动还是仅在同一个流程中执行。
要在同一过程中启动它,您只需调用main方法:
String[] arguments = new String[]{"-option1", "<option>", "<a string value>"};
MyOtherMainClass.main(arguments);
将其作为一个不同的过程启动:
ProcessBuilder pb = new ProcessBuilder("java", "-jar", "<my jar name>.jar", "-option1", "<option>", "<a string value>");
Process process = pb.start();
int errCode = process.waitFor();
第二个例子的灵感来自http://examples.javacodegeeks.com/core-java/lang/processbuilder/java-lang-processbuilder-example/