我需要在運行時從jar文件中讀取Manifest文件。來自java.util.zip.Inflater.init的奇怪java.lang.OutOfMemoryError(Native Method)
代碼:
JarFile someJar = new JarFile(jarFile);
manifest = someJar.getManifest();
然而,有時上面的代碼中拋出的OutOfMemoryError異常:
java.lang.OutOfMemoryError
at java.util.zip.Inflater.init(Native Method)
at java.util.zip.Inflater.<init>(Inflater.java:83)
at java.util.zip.ZipFile.getInflater(ZipFile.java:278)
at java.util.zip.ZipFile.getInputStream(ZipFile.java:224)
at java.util.zip.ZipFile.getInputStream(ZipFile.java:192)
at java.util.jar.JarFile.getBytes(JarFile.java:361)
有時能告訴我如何避免這種情況的例外(也許另一種方式來獲得清單在運行時)?
btw,我沒有權限更改java堆大小。
也許你的其他代碼導致內存泄漏? –
嘗試在執行此代碼之前監視空閒/佔用的內存量 –
即使無法保證,也可以嘗試調用System.gc() –