2012-07-03 2 views
0

자바에 해당하는 pexpect가 있습니까? 나는 commons exec 또는 processbuilder를 사용하고 stdin/stdout를 리다이렉션하고 스트림을 파싱하는 등의 기능을 복제 할 수 있다는 것을 알고있다. 그러나 나의 질문은 거기에 플러그 앤 플레이가 있는가하는 것이다.Pexpect와 Java가 동일합니까?

내가 원하는 것은 파이썬에서와 같이 대화식 명령 줄 프로그램을 실행하는 것입니다.

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에서 동일한 기능을 제공하는 패키지가 있습니까?

+0

아마도 원시 코드가없는 것은 아닙니다. Java의 하위 프로세스 처리는 매우 약합니다. –

답변

0

"java expect"에 대한 간단한 Google 검색은 목록의 첫 번째 항목으로 expect4j을 찾고 두 번째 항목으로 ExpectJ를 찾았습니다.

+0

검색 할 내용을 모르는 경우 죄송합니다. "Java pexpect"또는 "java pexpect equivalent"또는 "java interactive interactive console programs"를 검색하여 "첫 번째 항목"을 찾은 페이지를 알려주십시오. 내가 "매우 간단하다"는 것을 알았 더라면 나는 그것에 대해 질문하지 않았을 것이다. "Google에서 키워드를 사용하여 찾을 수있는 기회가 있다면 찾아 보지 마십시오!"라는 규칙을 넣어야합니다. 어쨌든 힌트를 주셔서 감사합니다. 나는 "건설적이지 않은"질문을하지 않으려 고 노력할 것입니다 ... – electrique