从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")
希望能帮助到你。
谢谢。