如何让java Runtime启动的进程能正常输入输出?

汤医森 发布于 2015/04/15 11:08
阅读 665
收藏 0

我用java写了一段代码,将perl代码加密,运行时先在内存中解密再启动一个进程运行perl脚本。

这个perl脚本中有输入有输出,输入可能不止一处。

然后我发现,网上的解决方案要么是针对读,要么是针对写,无法满足我这种“有时候读,有时候写”的需求

String cmd = "C:\\STRAWBERRY\\perl\\bin\\perl.exe";
		Process p = Runtime.getRuntime().exec(cmd);
		
		// Write perl code to perl process
		BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
		writer.write(argBuilder.toString());
		writer.flush();
		writer.close();
		
		// get the output of child process - but how to respond to input?
		BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
		String line = null;
	    while ((line = input.readLine()) != null) {        
	        System.out.println(line);
	    }

	    input.close();



加载中
0
young7
young7
没看明白楼主的需求
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部