概述
我正在使用Java创建GUI.此GUI使用ProcessBuilder类从命令行启动程序.
关于正在启动的进程的一些信息:在命令行中,它创建了另一个窗口并将信息打印到所述窗口.
在我的GUI窗口中,我有一个文本区域,我要将其重定向到该输出.我原本打算使用SwingWorker对象来不断检查更多输出,而不是阻止GUI.为了测试并确保我的原始语法正确(甚至没有引入GUI),我想我会将输出从辅助进程的窗口打印到System.out.但是,似乎有些问题,因为我可以在辅助进程的窗口中看到输出,而不是我正在使用的终端.
代码摘录如下:
Process p = pb.start();
Scanner s = new Scanner(p.getInputStream());
SwingWorker pipe = new SwingWorker (){
public String doInBackground(){
while(run){
if(s.hasNextLine()){
System.out.println("S has next!");
System.out.println(s.nextLine());
}
}
return null;
}
};
pipe.execute();
布尔运算在程序的其他位置定义,并且在进程p退出或被强制退出时设置为false(另一个问题:这是一个非常糟糕的主意吗?我觉得可能是…).
有谁知道为什么当我看到输出到另一个窗口时却没有得到任何输出?最初,我的反应是使用p.getOutputStream(),但Scanner并不将outputStream用作参数.
感谢您的时间.
最后
以上就是野性舞蹈为你收集整理的java将结果输出到文本域_将另一个程序的输出打印到Java文本区域的全部内容,希望文章能够帮你解决java将结果输出到文本域_将另一个程序的输出打印到Java文本区域所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复