【发布时间】:2012-05-24 10:25:21
【问题描述】:
当我运行 python 脚本时,输出出现在 DOS 上(Windows 中的命令提示符)。
我希望输出显示在 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不在当前目录中。 -
文件在同一目录下。绝对地址是 C:\Users\parth.k\Documents\printHello.py 就 'python' 而言,当我在命令提示符下键入 'python' 时,它会给出错误提示“它不被识别为内部或外部命令……”而且,您的意思是说,如果我打印异常的详细信息,我们将能够找出确切的原因??在这种情况下,我会将其打印出来并回复您。
-
@user:是的,我的意思是如果你输出异常的文本,它会告诉你哪里出了问题。但是在您的情况下,您已经知道:“...不被识别为内部或外部命令” 所以
python不在您的路径中,Java 无法运行它。该错误消息听起来像 Windows,所以这个页面应该会有所帮助:docs.python.org/faq/… 这部分内容与 Java 或您的原始问题无关。