2009-12-07 4 views
1

자바에서 오류 메시지를 읽어야합니다. getErrorStream과 readLine에서이 작업을 시도했지만 예외가 발생했습니다. 내가 http://yfrog.com/0986806495p자바에서 오류 대화 상자를 읽으십시오.

TNX을 읽을 수있는 내가 원하는 오류 메시지의 사진에 대한 링크를 추가

+3

반대로 증거가 나올 때까지 나는 그 문제가 대본의 한 마디 해커 대모에게서 왔다고 추정 할 것이다. 그럼에도 불구하고 유효한 프로그래밍 질문 (적절한 상황에서 주어진 답을 가질 수 있습니다)이므로 나는 그것을 닫고 싶은 사람들에게 동의하지 않습니다. –

+0

불법적 인 일을하고 싶지는 않습니다. 일부 사이트에서 해결해야 할 과제입니다. – aharon

답변

0

할 수 있습니다하지

그 오류 메시지가 운영 체제의 창 관리자에 표시되고있는 읽을 수 없습니다.

표준 오류에서 읽으려는 시도가 실패합니다. 아마도 해당 응용 프로그램이 표준 오류에 우선적으로 쓰지 않기 때문입니다.

+1

답안의 두 번째 부분에 동의하지 않습니다. stderr에서 읽는 것이 올바르게 수행되면 거기에 아무 것도 쓰여지지 않기 때문에 오류가 발생하지 않습니다. 대신, 그는 exec()를하고 있어도 exec'd 프로세스에서 모든 스트림 배관을 설정하는 것이 쉽지 않으므로 프로그램에 오류가 있다고 의심합니다. –

+0

물론, 제대로 완료되면. 읽을 것이 없으며 읽음을 어떻게 든 강제하면 잘못 완료 될 수 있습니다. 질문의 올바른 상태에 관해서는 우리는 말할 수 없습니다. – OscarRyz

2

TrueCrypt는 Java 프로그램이 아니며 Java는 메시지를 읽는 다른 프로그램의 대화 상자에 접근 할 수있는 합리적인 방법이 없습니다.

getErrorStream() TrueCrypt는 표준 오류로 텍스트를 출력하지만 사용자에게 보여줄 수있는 대화 상자가 있기 때문에 그렇게 할 이유가 거의 없습니다.

TrueCrypt는 실패 할 경우 0이 아닌 종료 상태를 반환하고 Runtime.getRuntime().exec("TrueCrypt.exe")을 사용하여 결과 프로세스가 완료 될 때까지 (Process.waitFor() 사용) 기다린 다음 종료 상태를 확인할 수 있습니다. 그러나, 당신은 여전히 ​​Ok 버튼을 칠 누군가가 필요합니다.

0

Truecrypt의 소스 코드를 사용할 수 있으므로 stdout/stderr로 출력하도록 수정할 수 있습니다.

관련 문제