如何在其他java应用程序(不是gui)的java gui中显示输出?

时间:2017-05-19 12:23:01

标签: java swing

请帮助我了解如何获取常规java工具的输出并将其显示在Java Swing Application的textArea组件中? 常规的Java应用程序(不是gui)已经可以通过cmd获取文件并在控制台中输出。 现在,我的场景是当我在Java Gui中加载文件时,内部的所有数据都将被发送到这个java应用程序(jar文件不是gui)。 我喜欢这个,但进一步我是堆栈。哪里发送输入?以及如何获取输出流以便在Java Gui应用程序的textArea中显示它。 下面的代码在Java Gui应用程序中。

    String cmd =MessageFormat.format("java -jar tooling-gott-extended.jar -defaultMID {0} -urls {1} -src {2} -exclude {3}", 
                    comboBoxMid.getSelectedItem(),
                    comboBoxGate.getSelectedItem(),
                    selectedFileTC.toString(),
                    " ");


            ProcessBuilder   pb = new ProcessBuilder(cmd);
            pb.redirectErrorStream(true);
            Process  p = pb.start();

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

1 个答案:

答案 0 :(得分:0)

我发现如何做到这一点,如果有人需要它,代码如何执行它。 但我现在面临其他挑战。我没有在gui应用程序的textArea中看到任何内容,直到它完成在cmd后面执行。如何显示并行?

String path = "C:\\Eclipse\\workspace_automation\\gui-tool\\java.jar";
    String cmd = MessageFormat.format("java -jar {0}  param1 {1} param2 {2} param3 {3}", path,
            comboBoxMid.getSelectedItem(), comboBoxGate.getSelectedItem(), selectedFileTC.toString());

    ProcessBuilder pb = new ProcessBuilder("cmd", "/c", cmd);
    pb.redirectErrorStream(true);
    Process p = pb.start();
    BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));

    String line;
    while (true) {
        line = r.readLine();
        if (line == null) {
            break;
        }
        System.out.println(line);
        textArea.append("\n"+line);
    }