是否有与java相当的pexpect?我知道我可以通过使用commons exec或processbuilder来复制功能,然后重定向stdin/stdout,然后解析流等等。但是,我的问题是,是否有即插即用的等效功能?Pexpect相当于java?
我想要运行交互式命令行程序,就像我在Python中做的那样。一个小例子是:
def start_binary(input):
shell_cmd = 'grep '+input+' file4.dat >> file3.dat'
grep = pexpect.spawn('/bin/bash', ['-c', shell_cmd])
grep.expect(pexpect.EOF)
shell_cmd = './myProg -c'
myProg = pexpect.spawn('/bin/bash', ['-c', shell_cmd])
myProg.expect('Next DATA file')
file_list = ['file1.dat', 'file2.dat', 'file3.dat']
for this_file in file_list:
myProg.sendline(this_file)
myProg.sendline()
return myProg
然后我以交互方式(发送命令,获取/解析结果等)使用myProg。我可以通过myProg.before得到两个电话之间的结果等
有没有在Java中同样简单的方式提供相同的功能包?
可能不是没有本机代码; Java的子进程处理非常弱。 –