Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何显示已执行命令行程序的输出?_Java - Fatal编程技术网

Java 如何显示已执行命令行程序的输出?

Java 如何显示已执行命令行程序的输出?,java,Java,我有一个命令行Java程序,不幸的是,出于某些完整性原因,我无法对其进行修改。我为该程序提供了一个GUI,并且我涵盖了所有内容,除了当程序使用System.out.println()将数据打印到命令行时,我无法向用户提供有关进程完成的通知,我使用NetBeans设计UI,它驻留在一个单独的文件中,因此我如何才能做到这一点?您使用它来执行程序吗?然后您可以像这样获得输出流: Runtime rt = Runtime.getRuntime(); Process proc = rt.exec("jav

我有一个命令行Java程序,不幸的是,出于某些完整性原因,我无法对其进行修改。我为该程序提供了一个GUI,并且我涵盖了所有内容,除了当程序使用System.out.println()将数据打印到命令行时,我无法向用户提供有关进程完成的通知,我使用NetBeans设计UI,它驻留在一个单独的文件中,因此我如何才能做到这一点?

您使用它来执行程序吗?然后您可以像这样获得输出流:

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("java yourOtherProgram.jar");
InputStream stdin = proc.getInputStream();
PrintStream out = ...;
PrintStream err = ...;

System.setOut(out);
System.setErr(err);

ThatOtherProgram foo = new ThatOtherProgram();
foo.main(new String[0]);
如果您直接调用某个方法,可以将System.out重定向如下:

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("java yourOtherProgram.jar");
InputStream stdin = proc.getInputStream();
PrintStream out = ...;
PrintStream err = ...;

System.setOut(out);
System.setErr(err);

ThatOtherProgram foo = new ThatOtherProgram();
foo.main(new String[0]);
编辑

然后,您可以使用扫描输入并对其进行处理。

您使用来执行程序吗?然后您可以像这样获得输出流:

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("java yourOtherProgram.jar");
InputStream stdin = proc.getInputStream();
PrintStream out = ...;
PrintStream err = ...;

System.setOut(out);
System.setErr(err);

ThatOtherProgram foo = new ThatOtherProgram();
foo.main(new String[0]);
如果您直接调用某个方法,可以将System.out重定向如下:

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("java yourOtherProgram.jar");
InputStream stdin = proc.getInputStream();
PrintStream out = ...;
PrintStream err = ...;

System.setOut(out);
System.setErr(err);

ThatOtherProgram foo = new ThatOtherProgram();
foo.main(new String[0]);
编辑


然后,您可以使用扫描输入并对其进行处理。

谢谢您的帮助。。我使用runtime.exec重新实现了该程序,但我仍在研究如何基于流动态提供通知。。谢谢你的努力。你可以使用Scanner类来完成。谢谢你的帮助。。我使用runtime.exec重新实现了该程序,但我仍在研究如何基于流动态提供通知。。谢谢你的努力..你可以使用Scanner类来做这件事。