我在java中有一個應用程序,它連接到一個數據庫並寫一些報告。我想每天在特定的時間寫這些報告。首先,我打算使用Windows服務器中的任務調度程序,但顯然它在執行我的jar時遇到了問題。所以我儘管我可以在java中使用Thread,並執行我的代碼中的部分代碼,這些代碼在我每天特定的時間所說的報告中都有說明。這意味着我必須讓我的應用程序始終運行,它感覺不對,但這是我目前唯一的選擇。如何清除java中使用的線程的內存?
這裏的問題是這樣的:
當我運行我的程序,它等待,直到它的時間打電話,這將創造我的報告類,問題是,在第一次被Java所消耗的內存是11舉例來說,在執行報告部分時,內存達到將近10 000 KB(這是合理的,我認爲,因爲我正在連接到數據庫並寫入文件等),那麼當需要再次編寫這些報告時,它將達到120 000 KB,並且下一次130 000 KB時,它不會更高,但是我想知道是否有一種方法可以在執行報告的一部分時返回到11 000 KB。 我讀過關於調用垃圾收集的方法,但它不起作用,也沒有設置爲空我的對象。 你們有什麼想法,爲什麼會發生這種情況?
謝謝!
如果你可以打包它從cron每日運行,並忘記它 – Drew
也許你應該投入更多的時間來檢查爲什麼Windows任務調度程序不會運行你的jar。也許你試圖用'javaw'而不是'java'來運行它,或者不正確地設置你的路徑。 Java通常不會將未使用的內存返回給操作系統,它會在需要時將其保留。 – RealSkeptic