1

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で同じ機能を同じ簡単な方法で提供するパッケージはありますか?

4

1 に答える 1

0

「java expect」を Google で簡単に検索すると、expect4j がリストの最初の項目として見つかり、ExpectJがリストの 2 番目の項目として見つかりました。

于 2012-07-03T17:24:00.370 に答える