使用参数从java程序运行.jar文件

时间:2014-09-01 12:44:30

标签: java

我试图从另一个java程序运行一个jar文件。 目前的代码:

ProcessBuilder pb = new ProcessBulder("java", "-Djava=\"libs\\native\\windows\"", "-jar", "example.jar", arg1, arg2, arg3);
pb.directory(new File("my\\directory\\folder"));
Process process = pb.start();

当执行此代码时,我没有得到任何错误,似乎没有任何实际发生。

1 个答案:

答案 0 :(得分:0)

使用ProcessBuilder.start()启动新线程。 documentation州:

  

默认情况下,创建的子进程没有自己的终端或控制台。其所有标准I / O(即stdin,stdout,stderr)操作都将重定向到父进程

因此,如果您没有特别要求,那么您将永远不会看到该流程的结果(包括来自该流程的错误消息)。

更好的替代方法是不依赖ProcessBuilder。如果您的被调用者是JVM类,只需将JAR包含在您的应用程序的类路径中,如下所示:

java -classpath ./example.jar -jar myApp.jar

然后您可以免费拨打example方法:

public class MyApp {
    public static void main(String[] args) {
        Example.main(new String[] { "bla", "blubb", "blabb" });
    }
}