从java程序运行jar文件
我正在尝试从另一个Java程序执行jar文件。我正在使用以下代码:从java程序运行jar文件,java,jar,runtime,executable-jar,Java,Jar,Runtime,Executable Jar,我正在尝试从另一个Java程序执行jar文件。我正在使用以下代码: try { Runtime runtime = Runtime.getRuntime(); runtime.exec("path upto jar"); } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Exception occured" + ex); }
try {
Runtime runtime = Runtime.getRuntime();
runtime.exec("path upto jar");
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Exception occured" + ex);
}
但它不起作用。我尝试了google,它给了我一些使用ProcessBuilder的例子,但这也不起作用。第一个建议/建议是使用ProcessBuilder而不是运行时。以下是您可以尝试的内容:
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);
使用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);
只要使用这一行代码,就可以从任何需要的地方运行jar文件
Desktop.getDesktop().open(new File("D:/FormsDesktop.jar"));
在哪里
希望能有帮助
谢谢。您的
exec
参数是否包含必要的[path]/java-jar
位?如果使用ProcessBuilder
,它可以更好地处理命令/参数中的空间
new File("your path to jar")