I found a bug in an application that completely freezes the JVM. The produced stacktrace would provide valuable information for the developers and I would like to retrieve it from the Java console. When the JVM crashes, the console is frozen and I cannot copy the contained text anymore.
Is there way to pipe the Java console directly to a file or some other means of accessing the console output of a Java application?
Update: I forgot to mention, without changing the code. I am a manual tester.
Update 2: This is under Windows XP and it's actually a web start application. Piping the output of
javaws jnlp-urldoes not work (empty file).
A frozen console probably means a deadlock (it could also mean repeated throwing of an exception). You can get a stack dump using
jstack
.jps
may make finding the process easier.Actually one can activate tracing in the Java Control Panel. This will pipe anything that ends up in the Java console in a tracing file.
The log files will end up in:
try this guide it works for me. it also guides you that how you can set "System.setOut(fileStream);", "System.setErr(fileStream);"
(If you can modify the code) you can set the
System.out
field to a different value:If you are running a script (invoking the program via
java
) fromUnix
you could do:In Mac 10.8.2 logs could be found at
/Users/<userName>/Library/Application Support/Oracle/Java/Deployment/log/
.Before you have to enable logging from Java Control Panel. Option "
Enable logging
" is at tab "Advanced
". Java Control Panel could be started from "System preferences
".