2013-08-06 2 views
1

Java 콘솔 창 (활성화되었을 때)에 표준 출력 (System.out)이 표시된다는 것을 이해했습니다. 나는 어딘가에서 발견했는데, 예를 들어 스윙 앱에서 시도하지 않는 상황이있을 수 있습니다. 그럴까요?System.out은 언제 Java 콘솔에 나타나지 않습니까?

기본적으로 콘솔에서 표준 출력을 볼 수없는 상황이나 설정은 무엇입니까? 예를 들어 JRE에서 명시 적으로 작동하는 것이 아니라 JDK에서 실행되는 동작의 차이점이 있습니까? javaw.exe?

ps, ​​Java 설정에서 Console을 표시하는 방법을 이해했지만 응용 프로그램을 만들거나 실행 가능한 jar로 실행하여 콘솔을 시작하지 않고 콘솔을 시작하는 경우가 궁금합니다. System.out)

+0

말 그대로 수백 가지 상황이 있습니다. 답을 찾으려면 * 모든 * 답변을 읽어야합니다. 아무 것도 받아들이지 말고 upvote. – tbodt

답변

-1

내가 생각할 수있는 상황 중 하나는 System.setOut(null) (또는 System.setOut(any OutputStream other than System.out or System.err))을 호출하는 것입니다. 콘솔이 존재하면 아무 것도 표시하지 않습니다.

0

System.out 출력이 콘솔에 표시되지 않는 유일한 방법은 System.setOut 메서드가 호출 된 경우입니다. 이 메서드는 그래픽 Java 콘솔로 출력을 리디렉션하기 위해 호출되지만 자발적으로 수행하지 않으면 자바 콘솔에서 리디렉션되는 다른 현실적인 상황을 알 수 없습니다.

+0

또는 콘솔이없는 경우. 출력이 리디렉션되지 않은 Java 응용 프로그램에서 시작된 하위 프로세스를 생각해보십시오. – assylias

0

터미널 설정에 따라 개행 문자가 전송 될 때까지 출력이 기록되지 않을 수도 있습니다. 따라서 System.out.print("test")을하면 즉시 나타나지 않을 수 있습니다. Windows의 경우 일반적으로 그렇지 않지만 Unix 터미널에서는 매우 일반적입니다.

0

아마도 javaw를 사용하여 가상 시스템을 시작했지만이 버전에서는 콘솔 메시지가 표시되지 않습니다. java를 사용하여 가상 시스템을 시작하면 콘솔 메시지가 표시됩니다.

javaw는 Windows가 설치된 응용 프로그램 용이며 java는 콘솔 응용 프로그램 용입니다.

0

나에게도 똑같은 일이 일어났습니다. 콘솔에서 System.out.println 또는 Logger.debug를 가져올 수 없습니다.

Eclipse에서 거대한 프로젝트를 진행하고 있다면 아래에서 읽을 수 있습니다.

해결 방법 : 네트워크에서 SubVersioN에 jar 파일과 java 파일을 커밋하지 않았다는 것을 깨달았습니다. 그게 다야. 프로젝트가 컴파일되지 않았습니다.

관련 문제