문제

JVM을 완전히 정지시키는 애플리케이션의 버그를 발견했습니다.생성된 스택 추적은 개발자에게 귀중한 정보를 제공하므로 Java 콘솔에서 해당 정보를 검색하고 싶습니다.JVM이 충돌하면 콘솔이 정지되고 포함된 텍스트를 더 이상 복사할 수 없습니다.

Java 콘솔을 파일로 직접 파이프하는 방법이나 Java 애플리케이션의 콘솔 출력에 액세스하는 다른 방법이 있습니까?

업데이트:코드를 변경하지 않고 언급하는 것을 잊었습니다.저는 수동 테스터입니다.

업데이트 2:이것은 Windows XP에 있으며 실제로는 웹 시작 응용 프로그램입니다.출력 파이핑

javaws jnlp-url
작동하지 않습니다(빈 파일).

도움이 되었습니까?

해결책

실제로 활성화 할 수 있습니다 트레이싱 Java 제어판에서. 이것은 Java 콘솔에서 추적 파일로 끝나는 모든 것을 파이프합니다.

로그 파일은 다음과 같습니다.

  • u003Cuser.home>/.java/deployment/log on Unix/Linux
  • u003CUser Application Data Folder> sun java deployment Windows에 로그인
  • /~/라이브러리/캐시/Java/로그온 OS X

다른 팁

(코드를 수정할 수있는 경우) System.out 다른 값으로 필드 :

System.setOut(new PrintStream(new FileOutputStream(fileName)));

스크립트를 실행중인 경우 ( java) 에서 Unix 당신은 할 수 있습니다 :

/path/to/script.sh >& path/to/output.log

Mac에서 10.8.2 로그를 찾을 수 있습니다 /Users/<userName>/Library/Application Support/Oracle/Java/Deployment/log/.

Java 제어판에서 로깅을 활성화해야합니다. 옵션 "Enable logging"탭에있다"Advanced". Java 제어판을 시작할 수 있습니다."System preferences".

콘솔이 정지되면 아마도 교착 상태를 의미할 것입니다(예외가 반복적으로 발생한다는 의미일 수도 있음).다음을 사용하여 스택 덤프를 얻을 수 있습니다. jstack. jps 프로세스를 더 쉽게 찾을 수 있습니다.

노력하다 이 안내서 그것은 나를 위해 작동합니다. 또한 "System.Setout (filestream);", "System.Seterr (Filestream)"를 설정하는 방법을 안내합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top