从java程序运行jar文件

我试图从另一个Java程序执行jar文件。 我使用以下代码:

try { Runtime runtime = Runtime.getRuntime(); runtime.exec("path upto jar"); } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Exception occured" + ex); } 

但它不起作用。 我试过谷歌,它给了我使用ProcessBuilder的例子,但这也没有用。

使用ProcessBuilder(java.lang.ProcessBuilder)将解决您的问题。 语法如下 –

 ProcessBuilder pb = new ProcessBuilder("java", "-jar", "absolute path upto jar"); Process p = pb.start(); 

您可以按如下方式将输入/输出/错误重定向到文件/从文件重定向

 File commands = new File("absolute path to inputs file"); File dirOut = new File("absolute path to outputs file"); File dirErr = new File("absolute path to error file"); dirProcess.redirectInput(commands); dirProcess.redirectOutput(dirOut); dirProcess.redirectError(dirErr); 

第一个建议/建议是使用ProcessBuilder而不是Runtime。 您可以尝试以下方法:

 ProcessBuilder pb = new ProcessBuilder("java", "-jar", "./jarpath/yourjar.jar"); Process p = pb.start(); BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); String s = ""; while((s = in.readLine()) != null){ System.out.println(s); } int status = p.waitFor(); System.out.println("Exited with status: " + status); 

您只需使用这一行代码就可以从任何地方运行jar文件。

  Desktop.getDesktop().open(new File("D:/FormsDesktop.jar")); 

哪里

 new File("your path to jar") 

希望能帮助到你。

谢谢。