我的客戶端有一個名爲CacheDownloader的類,它爲我的主jar,客戶端下載了一個解壓縮更新。我遇到了一個問題,因爲它無法解壓新客戶端並在使用時將其替換,所以我必須創建一個新的jar(名爲ClientUpdater),它將解壓新客戶端以替換舊客戶端,然後打開新客戶端。Java內存不足
ClientUpdater打開客戶端備份沒有問題。但是,CacheDownloader無法打開ClientUpdater,它會發生內存不足錯誤。
CacheDownloader仍下載所有新文件並解壓縮文件,所有ClientUpdater都解壓縮包含相當小的客戶端的小型zip文件。
這裏是CacheDownloader負載如何ClientUpdater:
Runtime.getRuntime().exec("java -jar " + getCacheDir() + "/ClientUpdater.jar");
System.exit(0);
以下是完整的錯誤信息 - http://gyazo.com/8105ffd4c35f5f6d4a68a770fedf8f92
希望這是足夠的情況下,沒有它是冗長的信息。我現在的問題是,我該如何解決這個問題?錯誤表示我可以增加保留的代碼緩存,這是否有負面影響?我怎麼這樣做,谷歌並沒有真正顯示它是如何解釋它做了什麼。
我對Java很新,所以要記住。
對於[示例](http://stackoverflow.com/a/6310284/230513),你的[profiler](http://stackoverflow.com/q/2064427/230513)告訴你什麼? – trashgod
我沒有這種新的。該錯誤確實說最大/使用/利用,但如果這就是你需要? – VirtualJunky
您可能已經有jvisualvm,它通常包含在JDK中。 – trashgod