有時在更新我的jar之後。程序不會在某些平臺上啓動(我的意思是Win/Unix/Mac)。我想知道爲什麼。如果你從命令行/終端運行.jar,你會得到一個堆棧跟蹤並知道錯誤。但用戶並不總是知道如何使用cmd /終端。如何運行.jar文件將輸出保存到所有操作系統上的文件?
所以我的問題是:如何從給定系統上的默認cmd啓動.jar文件並將輸出保存到文件?
有時在更新我的jar之後。程序不會在某些平臺上啓動(我的意思是Win/Unix/Mac)。我想知道爲什麼。如果你從命令行/終端運行.jar,你會得到一個堆棧跟蹤並知道錯誤。但用戶並不總是知道如何使用cmd /終端。如何運行.jar文件將輸出保存到所有操作系統上的文件?
所以我的問題是:如何從給定系統上的默認cmd啓動.jar文件並將輸出保存到文件?
在主文件包的內容是這樣並轉儲堆棧跟蹤到一個文件中(異常處理保持在最低限度,以舉例的重要行):
try{
//..main code here
} catch (Exception e)
{
FileWriter fw = new FileWriter ("run.log", true);
PrintWriter pw = new PrintWriter (fw);
e.printStackTrace (pw);
pw.close();
}
這將轉儲整個堆棧跟蹤到一個文件無論拋出的Exception和用戶所在的操作系統如何。您也可以使用Throwable而不是Exception。
如何使用一些標準的測井工具?例如Log4j(http://logging.apache.org/log4j/2.x/)或Slf4j(http://www.slf4j.org/)? –
@JohnnyGreenwood我知道這件事,你可能是對的。我即將完全實現它,但現在我正在尋找一些臨時和快速的解決方案。 – alex
@JohnnyGreenwood或者,這個標準日誌實際上是一個標準:[java.util.logging](https://docs.oracle.com/javase/8/docs/api/java/util/logging/package-summary的.html)。 – VGR