6

Javaコードから別のアプリケーションを実行したい。

Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("cmd.exe");

プロセスは起動されますが、バックグラウンドで実行されます。フォアグラウンドで実行するにはどうすればよいですか?

4

4 に答える 4

5

Process#waitFor()はあなたが探しているものです。

于 2012-08-16T09:06:41.897 に答える
4

新しいウィンドウで開くようにcmd.exeに指示する必要があります。

Process pr = rt.exec("cmd.exe /c start");
于 2012-08-16T09:16:29.740 に答える
1

外部プロセスを処理するときは、commons-execの使用を検討してください。私の意見では、Javaランタイムクラスを使用するよりも処理がはるかに簡単です。

チュートリアル:http ://commons.apache.org/exec/tutorial.html

于 2012-08-16T09:11:36.090 に答える
0

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);
        }
    }
});
于 2012-08-16T09:05:12.010 に答える