1

これは、BlueJで作成され、BlueJパッケージを含むzipファイルとして送信された割り当て用です。

パッケージには、いくつかの独立したコンソールプログラムが含まれています。別の「コントロールパネル」プログラムを作成しようとしています。各プログラムを起動するためのラジオボタン付きのGUIです。

これが私が試したリスナークラスの2つです:

private class RadioButtonListener implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == arraySearchButton)
        {
            new ArraySearch();
        }//end if
            else if(e.getSource() == workerDemoButton)
            {
                new WorkerDemo();
            }//end else if
    }//end actionPerformed
}//end class RadioButtonListener

private class RunButtonListener implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        if(arraySearchButton.isSelected())
        {
            new ArraySearch();
        }//end if
            else if(workerDemoButton.isSelected())
            {
                new WorkerDemo();
            }//end else if
    }//end actionPerformed
}//end class RunButtonListener

前もって感謝します!

4

1 に答える 1

1

.EXEコンソールアプリケーションを起動しようとしていると仮定して、ここに役立つコードがいくつかあります。説明については、以下を参照してください。

import java.io.*;


public class Main {

       public static void main(String args[]) {

            try {
                Runtime rt = Runtime.getRuntime();
                //Process pr = rt.exec("cmd /c dir");
                Process pr = rt.exec("c:\\helloworld.exe");

                BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));

                String line=null;

                while((line=input.readLine()) != null) {
                    System.out.println(line);
                }

                int exitVal = pr.waitFor();
                System.out.println("Exited with error code "+exitVal);

            } catch(Exception e) {
                System.out.println(e.toString());
                e.printStackTrace();
            }
        }
}

まず、現在実行中のJavaアプリケーションのハンドルが必要です。そのためには、ランタイムオブジェクトを作成し、Runtime.getRuntime()を使用します。次に、新しいプロセスを宣言し、exec呼び出しを使用して適切なアプリケーションを実行できます。

bufferReaderは、生成されたプロセスの出力を印刷し、Javaコンソールで印刷するのに役立ちます。

最後に、pr.waitFor()は、現在のスレッドにプロセスprが終了するのを待ってから先に進むように強制します。exitValには、エラーコードがあれば含まれます(0はエラーがないことを意味します)。

お役に立てれば。

于 2012-04-17T21:15:48.383 に答える