Javaに相当するpexpectはありますか? commons exec または processbuilder を使用し、stdin/stdout をリダイレクトしてからストリームなどを解析することで、機能を複製できることはわかっています。
私が望むのは、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 などを使用して、2 つの呼び出し間の結果を取得できます。
Javaで同じ機能を同じ簡単な方法で提供するパッケージはありますか?