2010-05-18 24 views
3

java.util.zip在本機內存使用方面存在衆所周知的問題,所以我試圖使用名爲「jazzlib」的插入替換。不幸的是,對於sourceforge項目而言通常沒有文檔。如果我將jar添加到我的類路徑中,那麼Java會嚇倒並給我「禁止的包名稱」錯誤,因爲它取代了java.util.zip。我如何告訴Java,這是我想要它做的事情?你如何放棄替代JRE課程?

回答

2

將其添加到引導類路徑或將其添加爲認可的jar。

也許更好,使用遮陽類重命名回了被保護的包,並用他們的方式。如果你使用maven,maven-shade-plugin是很方便的。

1

您可以指定使用命令行ARG -Xbootclasspath在JRE提供的類覆蓋。查詢this link瞭解更多詳情。

1

我不會安裝一些隨機的(無證)庫更換成我的JRE,當然我也不會用於生產系統,或者說我打算提供給別人一個應用程序做到這一點。生產支持人員會(正確)適應,如果他們被要求做這樣的事情。

但如果你真的想這樣做,從@bmargulies的答案,@akf是有益的。

2

對於最新的源代碼,請參閱類路徑CVS倉庫。在這個頁面上,您可以在net.sf.jazzlib和java.util.zip命名空間中找到代碼的源代碼和二進制代碼。

只需使用net.sf.jazzlib命名空間中的一個,以避免衝突。