2010-04-27 2 views
0

Perl 스크립트에서 Java 프로그램을 실행하려고합니다. Java에서 System.exit (1) 및 System.exit (-1) 명령을 사용하지 마십시오. 그러나 나는 STDOUT과 STDERR을 자바에서 인쇄하고있다. 필자의 펄 스크립트에서는 자바의 stdout을 읽고 라인 단위로 출력하고있다. stderr를 인쇄하려면 어떻게합니까? stderr가 보이면 실패합니까?Perl에서 Java stdout 및 stderr 처리

my $java_command = ...; 
open(DATA, ">$java_command"); 
while (<DATA>) { 
    chomp($_); 
    .... 
    .... 
} 

답변

1

이 여기에 설명되었습니다 : 자주 묻는 질문 How-can-I-capture-STDERR-from-an-external-command의 펄 문서에서

open (DATA, "($java_command_with_args | sed 's/^/STDOUT:/') 2>&1 |"); 
while (<DATA>) { 
    if (s/^STDOUT://) { 
     print "line from stdout: ", $_; 
    } else { 

     print "line from stderr: ", $_; 
     die("Saw something on stderr"); 
    } 
} 
관련 문제