我已经制作了一个应用程序并将其导出为jar文件。
如果jar应用程序由于某种原因而崩溃,我希望它生成带有错误的崩溃日志文本文件。
如果我在Eclipse中运行该应用程序,那么eclipse总是告诉我它在哪里崩溃了,以jar形式运行该应用程序时,是否可以在文本文件中获得相同类型的消息?
我通过键入以下命令来运行我的jar文件:java -jar MyApplication.jar
如果发生崩溃,我可以在此命令中添加一些内容以生成崩溃日志吗?
谢谢!
最后,我使用了此解决方案,其工作原理与我想要的完全一样。每次应用程序崩溃时,它将异常保存在名为“ crashlogs”的子文件夹中的文本文件中,并将日期和时间作为文件名。
刚刚在我的主要功能的开头添加了此代码
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
String filename = "crashlogs/"+sdf.format(cal.getTime())+".txt";
PrintStream writer;
try {
writer = new PrintStream(filename, "UTF-8");
writer.println(e.getClass() + ": " + e.getMessage());
for (int i = 0; i < e.getStackTrace().length; i++) {
writer.println(e.getStackTrace()[i].toString());
}
} catch (FileNotFoundException | UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句