如何将Java -jar的错误输出到文本/日志文件?

14

我已经翻遍了谷歌!我正在尝试找出如何在Windows命令行执行Java时输出任何错误的Java类。

例如:

java -jar class.jar <someFile.file>
如果那一行代码出现错误,我希望能够将其存储到一个文本文件中以供日后查看。
我尝试过。
java -jar class.jar <someFile.file> >> log.txt

但是尽管出现错误,log.txt文件为空。

谢谢大家!


1
http://support.microsoft.com/kb/110930 - Vikdor
1
"我已经拼命谷歌搜索了!" 最好提到 1) 使用了哪些搜索词。2) 在这些搜索词中找到的一些顶级链接。3) 为什么它们不符合需求。 - Andrew Thompson
3个回答

34

使用:

java -jar class.jar <someFile.file> 2>> log.txt

数字2将错误流重定向。


1
非常感谢您!我从来不知道我写了那么多批处理文件 :(而且我使用的搜索词是“输出java -jar错误”,它们没有给出我的答案。甚至没有接近的结果。我从来没有想过要使用重定向错误流。非常感谢@thedayofcondor! - Seth
这个答案非常有用。然而在测试中,我发现“2”输出的是所有内容,而不仅仅是错误信息。 - Kevin
2>> 只将 stderr 记录到文件中,stdout 应该在控制台上可见。也许你的 jar 文件也会将其输出打印到 stderr 中? - thedayofcondor

1
您可以使用批处理文件来轻松地将所有输出重定向到文本文件中,如下命令所示:

C:> something.bat > console_output.txt


我测试过了。由于某种原因,这不会输出/记录任何Java代码。 - Kevin

0
尝试这样做,以便在后台运行
javaw -jar yourjarfile.jar >>yourlogfile.txt 2>&1

如果你想在cmd会话中运行它,请尝试下面这个。
java -jar yourjarfile.jar >>yourlogfile.txt 2>&1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接