#!/usr/bin/python
import sys
if __name__ == "__main__":
sys.stdout.write("I am in stdout\n")
sys.stderr.write("I am in stderr\n")
for index in range(2):
sys.stderr.write("give me command\n")
command = sys.stdin.readline()[0:7]
sys.stdout.write("get the command " + command + "\n")
ret = cmp(command.lower(), "get out")
if (ret == 0):
break;
else:
sys.stdout.write("the command is not 'get out', cmp result=
%d\n" % ret)
sys.stdout.write("exit\n")
sys.exit(100)
并在Java中通过在一个新的线程中用ProcessBuilder创建一个新的Process来管理Python的stdin,stdout,以及
stderr。但是执行时Java程序无任何显示,此时检查系统的进程,可以看到一个"python"进程正在运行。
如果以程序进行修改,将读取stdin中的输入换成:command = "get out" 来模拟命令,则Java程序能正确显示运行结果。
从这个测试结果来看,似乎在Java中无法调用包含读取stdin输入的python脚本。
不知各位是否遇到过这种问题,有什么好的解决办法没有?
多谢!