当我运行Python脚本时,输出会出现在DOS上(即在Windows中的命令提示符)。
我希望将输出显示在一个JAVA应用程序上,即在包含JTextArea的窗口上。输出应与DOS上的相同。
那么,如何捕获来自DOS的输出并将其插入到JAVA应用程序中?(我尝试将Python脚本的输出存储在文本文件中,然后使用JAVA读取它。但是,在这种情况下,JAVA应用程序会等待脚本先完成运行,然后再显示输出。而且,当输出超过屏幕大小时,会出现滚动条,以便我可以看到整个输出。)
在crowder的评论之后,我运行了这段代码。但输出总是:
错误: 进程说:
有谁能告诉我我做错了什么吗?
我希望将输出显示在一个JAVA应用程序上,即在包含JTextArea的窗口上。输出应与DOS上的相同。
那么,如何捕获来自DOS的输出并将其插入到JAVA应用程序中?(我尝试将Python脚本的输出存储在文本文件中,然后使用JAVA读取它。但是,在这种情况下,JAVA应用程序会等待脚本先完成运行,然后再显示输出。而且,当输出超过屏幕大小时,会出现滚动条,以便我可以看到整个输出。)
在crowder的评论之后,我运行了这段代码。但输出总是:
错误: 进程说:
import java.io.*;
import java.lang.*;
import java.util.*;
class useGobbler {
public static void main ( String args[] )
{
ProcessBuilder pb;
Process p;
Reader r;
StringBuilder sb;
int ch;
sb = new StringBuilder(2000);
try
{
pb = new ProcessBuilder("python","printHello.py");
p = pb.start();
r = new InputStreamReader(p.getInputStream());
while((ch =r.read() ) != -1)
{
sb.append((char)ch);
}
}
catch(IOException e)
{
System.out.println("error");
}
System.out.println("Process said:" + sb);
}
}
有谁能告诉我我做错了什么吗?
IOException
异常。根据我的猜测,要么python
不在您的路径中,要么preintHello.py
不在当前目录中。 - T.J. Crowderpython
不在您的路径中,Java无法运行它。这个错误信息听起来像是Windows,因此这个页面应该会有帮助:http://docs.python.org/faq/windows.html#how-do-i-run-a-python-program-under-windows 这件事与Java或您最初的问题无关。 - T.J. Crowder