Javaコードから別のアプリケーションを実行したい。
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("cmd.exe");
プロセスは起動されますが、バックグラウンドで実行されます。フォアグラウンドで実行するにはどうすればよいですか?
Javaコードから別のアプリケーションを実行したい。
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("cmd.exe");
プロセスは起動されますが、バックグラウンドで実行されます。フォアグラウンドで実行するにはどうすればよいですか?
Process#waitFor()はあなたが探しているものです。
新しいウィンドウで開くようにcmd.exeに指示する必要があります。
Process pr = rt.exec("cmd.exe /c start");
外部プロセスを処理するときは、commons-execの使用を検討してください。私の意見では、Javaランタイムクラスを使用するよりも処理がはるかに簡単です。
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);
}
}
});