我想從java代碼運行另一個應用程序。Java,在前臺運行另一個應用程序
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("cmd.exe");
進程啓動,但在後臺。如何使它在前臺運行?
我想從java代碼運行另一個應用程序。Java,在前臺運行另一個應用程序
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("cmd.exe");
進程啓動,但在後臺。如何使它在前臺運行?
你應該告訴你希望它在新窗口中打開cmd.exe的:
Process pr = rt.exec("cmd.exe /c start");
從JDialog運行您的命令,運行後使用toBack()。
final JDialog dlg = new javax.swing.JDialog(null, "test", JDialog.ModalityType.DOCUMENT_MODAL);
dlg.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
JButton button = new JButton("Select Me");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
java.awt.Desktop.getDesktop().open(
new java.io.File("/home/user/Downloads/jfreechart-1.0.13-US.pdf"));
dlg.toBack();
} catch (IOException e1) {
throw new RuntimeException(e1);
}
}
});
Process#waitFor()是你在找什麼。
考慮在處理外部進程時使用commons-exec。 在我看來,處理比使用Java運行時類要容易得多。