在Windows下,当我的程序从命令行启动时,我无法可靠地操作我的子进程'I/O. 令人沮丧的是,服务器使用控制台进行I/O是标准配置.GUI很不错,但我更喜欢坚持使用命令行并保持简单.我注意到当我从Eclipse IDE执行我的服务器时,子进程I/O很好,但是从命令行运行它是一个完全不同的故事.我无法读取或写入子进程,但该进程仍将运行.我在下面写了一些测试代码来演示这个问题,我希望这个问题可以在另一台机器上重现,然后希望能从中找到解决方案.从Eclipse执行时,继承的I/O按预期工作.但是,从Windows命令提示符执行时,无法读取或写入子进程.在这两种情况下,将子进程输出重定向到文件总是成功,但输入仍然无法传递给子进程.如果已经有解决此问题的方法,请链接该页面.
JRE/JDK实现:
>java -version
java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) 64-Bit Server VM (build 21.1-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud)
请考虑以下代码:
package com.comp8nerd4u2.io.test;
/*
* These tests attempt to confirm what I'm experiencing under my build environment
*/
import java.io.File;
import java.io.IOException;
public final class PIOTest {
/** The command to run as a child process. The command itself isn't the test, but what you use to run this Java program is the test. */
private …Run Code Online (Sandbox Code Playgroud)