0

我需要读取由我编写的另一个 java 程序生成的 byte[]。众所周知,java 中的 main 只能返回一个 void。这是否意味着我需要使用返回类型为 byte[] 的静态方法编写程序?如果是,那么如何在我的程序中运行此方法并将其返回值保存在我的程序中?这就是我的程序中的内容:

ProcessBuilder pb = new ProcessBuilder("java.exe","viewer.java","pathToViewer.java");
Process process = pb.start();
InputStream is = process.getInputStream();
byte[] bytes = IOUtils.toByteArray(is);

什么是正确的方法?

4

1 回答 1

5

不,您不能跨 JVM 实例传递返回值。您必须设计并实现将传递数据的特定协议。您拥有的一个简单选项是在子流程中写入System.out,这会将数据推送到您的is中,因此您bytes最终将包含子流程写入的内容。

于 2013-06-03T09:44:08.570 回答