2009-10-16 1 views
1

타사 DLL을 래핑하기 위해 JNI DLL을 작성하고 있습니다. 우리 DLL에서 디버그 문을 표준 출력합니다.Java JNI DLL에서 표준 출력에 쓰기 - 응용 프로그램이 종료 될 때만 출력됩니다.

Java 응용 프로그램의 DLL을 사용하면 응용 프로그램을 실행하는 동안 Java 콘솔에 아무것도 인쇄되지 않습니다. 응용 프로그램이 닫히면 DLL의 모든 출력이 Java 콘솔에 기록됩니다.

끝에있는 대신 응용 프로그램이 실행될 때 DLL의 출력을 Java 콘솔에 표시하고 싶습니다.

왜 이런 일이 발생하는지 알고 있으며, 애플리케이션 실행 중에 출력을 얻으려면 어떻게해야합니까?

+0

'stdout' 대신'stderr'을 사용하십시오. –

답변

3

출력을 플러시하십시오. 그래도 작동하지 않는다면 System.out을 DLL에 입력하고 stdout 대신 PrintStream을 사용하십시오.

그러나 fflush(stdout);이면 충분합니다.

관련 문제