2011-09-21 5 views
1

테스트로서 나는 스윙 프로그램의 리눅스 표준 출력에 썼고 콘솔은 보이지 않았다. 그것은 충돌하지 않습니다. 예외는 발생하지 않습니다. 안전한 것으로 알려져 있습니까? 나는 이것을 일반적으로 할 의도가 없지만 프로그램에 버그가 있다면 일어날 수있다.스윙 프로그램의 표준 출력은 어떻게됩니까?

편집 : 질문은 Java 객체 인 System.out에 대한 모든 언급을 제거하기 위해 수정되었습니다. 이클립스 IDE에서 표준 출력 데이터를 받아 표시하는 콘솔이 있지만 분명히 내 질문은 IDE가 없을 때와 관련이있다.

+0

왜 안전하지 않습니까? – MeBigFatGuy

+0

콘솔이 없습니다. – H2ONaCl

답변

2

모든 Java 프로그램은 여전히 ​​프로그램이며 Linux의 거의 모든 프로그램에 입력, 출력 및 오류라는 세 가지 스트림이 있습니다. Java의 in, outerr은 해당 스트림 위에 위치합니다.

명령 줄에서 프로그램을 시작하는 경우 java YourApp과 같은 경우 해당 스트림의 출력이 콘솔에 표시 될 가능성이 높습니다. 또는 디버거가이를 캡처하고 마찬가지로 수행 할 수 있습니다. 그러나 GUI에서 시작된 앱에서는 출력이 거의 잊혀 질 정도입니다.

짧은 버전 : 예, 안전합니다.

0

다른 Java 응용 프로그램과 마찬가지로 stdout에 씁니다. 그것은 stdout이 무엇이고 어디에서 출력이 나오는지 OS에 달렸지 만, 앱이 GUI 창을 보여주기 때문에 다른 점이 없다는 것을 보여줍니다. webapp에 창을 표시하게 할 수 있으며, 거기에서도 stdout에 쓸 수 있습니다.

+0

실례합니다. 나는 "콘솔이 없을 때 리눅스의 표준 출력에 쓸 때 어떤 일이 일어나는가?"라는 질문을 다시 한번 표현할 것이다. – H2ONaCl

0

명령 줄에서 프로그램을 시작한 경우 System.out이 해당 창에 기록됩니다. 프로그램을 시작한 경우

0

표준 출력 스트림으로 이동합니다. 그러나 현재 JVM과 연결된 콘솔이 없을 수도 있고 없을 수도 있습니다.

터미널에서 응용 프로그램을 실행하면 (명령 또는 Windows 시스템에서 호출 한 명령) 출력을 이클립스에서 보는 것과 거의 같은 방식으로 볼 수 있습니다.

0

엄밀히 말하자면, 당신은 리눅스의 표준에 쓰지 않고, 당신은 java System.out 객체에 쓰고있다. Java 애플리케이션이 System.out을 다른 출력 스트림으로 리디렉션 할 수 있으므로 출력이 OS 수준에서 어디로 갈 것인지 보장 할 수 없습니다. 즉, 아무것도 날려 버리지 않을 것이라는 점에서 Swing 응용 프로그램에서 System.out에 쓰는 것이 안전합니다.

중요한 정보를 쓰지 않고 어디에도 가지 않을 것이라고 생각하면됩니다.

관련 문제