首页 > 解决方案 > Processbuilder 执行带有争论的 jar 文件

问题描述

我想使用 ProcessBuilder 执行一个带有一些争论的 jar 文件,但我不确定如何构造语法。

例如,我想执行以下操作:

processBuilder.command("cmd.exe", "/c", "java" ,"-jar" + this.jar_filepath + " " + this.tc_name + " " + this.test_data + " " + this.test_result);

基本上,我正在尝试执行一个 jar 文件,该文件位于jar_filepath并将参数的内容发送tc_name, test_data到执行的 jar 文件test_result的 main 方法。

这显然是错误的,希望对如何正确构造语法有指导。

更新: 对于凯文布恩:

 try {
      Process process = processBuilder.start();
      process.waitFor()  ;
      BufferedReader reader = new BufferedReader(new 
                              InputStreamReader(process.getInputStream()));

      String line;
      while ((line = reader.readLine()) != null) {
           System.out.println(line);
      }

      int exitCode = process.waitFor();
      System.out.println("\nExited with error code : " + exitCode);
}
catch (IOException e) {
      e.printStackTrace();
} 
catch (InterruptedException e) {
      e.printStackTrace();
}

标签: java

解决方案


假设其他部分都很好,

"-jar" + this.jar_filepath

少了一个空格,应该是

"-jar " + this.jar_filepath
     ^

或者只是,在任何地方使用并让 ProcessBuilder 插入空格。


推荐阅读