尝试使用Runtime.getRuntime()执行Java jar.exec()

在我正在进行的项目中,我需要在类路径中执行我在资源文件夹中的脚本。 我只是测试最终的脚本function,因为我在Windows上,我需要一种方法将文件输出到STDIN,所以我创建了一个简单的cat.jar程序来克隆unixs cat命令。

所以当我执行“java -jar cat.jar someFile.txt”时,它会将文件输出到stdout。 我确信有不同的方式来做我做的事情。

无论如何,我想从我的主java程序中运行该JAR。 我在做

Runtime.getRuntime().exec("java -jar C:/cat.jar C:/test.txt"); 

我已经尝试将正斜杠切换为反斜杠并转义它 – 不起作用。 什么都没有被送到标准。

如果,如果我自己运行cat jar,我会将文件定向到标准输出。

我在这做错了什么? 这有足够的信息吗?

使用exec()返回的Process实例

 Process cat = Runtime.getRuntime().exec("java -jar C:/cat.jar C:/test.txt"); BufferedInputStream catOutput= new BufferedInputStream(cat.getInputStream()); int read = 0; byte[] output = new byte[1024]; while ((read = catOutput.read(output)) != -1) { System.out.println(output[read]); } 

参考文献:
http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html

默认情况下,创建的子进程没有自己的终端或控制台。 它的所有标准I / O(stdin,stdout,stderr)操作都将被重定向到父进程,在那里可以通过使用方法getOutputStream(),getInputStream()和getErrorStream()获得的流来访问它们。

http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html#getInputStream()

getInputStream()返回连接到子进程正常输出的输入流。