[情報] Eclipse與Java 6u21的問題

看板Eclipse作者 (Kurosagi.)時間14年前 (2010/08/02 09:05), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
近日,Oracle發佈了Java 6 update 21,對java.dll的創建方式進行了一些細小但無傷大 雅的變更。然而不幸的是,這個改變影響了Eclipse的啟動,對Eclipse造成的影響要遠遠 大於曾經的Sun所擁有的NetBeans。 變化之處是在創建dll時,將COMPANY_NAME=Sun Microsystems, Inc.改為了 COMPANY_NAME=Oracle Corporation。然而不幸的是,Eclipse使用DLL的名字來確認是否 可以安全地附加非標準的-XX:MaxPermSize。如果存在該標識但卻不被支持,那麼某些JVM 就無法成功啟動,因此就不能將-XX:MaxPermSize放在Eclipse的啟動文件中( eclipse.ini),而是附加了一個新的參數--launcher.XXMaxPermSize 256m,如果 Windows上的加載器檢測到是Sun VM,那麼就會自動附加-XX:MaxPermSize=256m。 這種自動檢測發生在C加載器中(eclipse.exe)而非VM,這是因為一旦運行了VM,那麼就 沒法修改屬性了。為了能快速實現該功能(說實在的,這麼做有點不妥),eclipse.exe 加載器會檢查Sun Microsystems字符串以確定可否增加該標識。 因此,這個變化破壞了Eclipse的加載過程,導致加載時出現OutOfMemoryError錯誤。這 個問題很快被報告給了Eclipse,接下來Eclipse將參數名字修改為Oracle,該問題很快就 被解決掉了。 雖然商標變更這種事是Oracle自己的權利(甚至都沒必要在發佈聲明中提及這一點),但 這卻著實地影響到了Eclipse,不僅是當前的3.6版,還有基於3.5、3.4、及3.3的所有IDE 與RCP。對於Eclipse來說,需要按照順序來修復這個問題;目前,有個補丁程序可以修復 最新版Eclipse加載器的這個問題,但還並沒有直接發佈,因為至少要考慮到Eclipse 3.5 與3.4,為的是確保兼容性。 Oracle因快速的問題解決速度而備受稱讚。雖然他們並不需要解決這個問題,但還是在幾 天內就解決了,隨後的Java構建版本也會修復這個問題(是否要重新構建6u21抑或是6u22 還不太確定)。與此同時,如果你遇到了Eclipse的問題,同時最近又安裝了Java 6u21( 或是自動更新的),那麼可以降級到Java 6u20或是按照FAQ的指導重新啟用permgen size 。 http://www.infoq.com/cn/news/2010/08/eclipse-java-6u21 查看英文原文:Eclipse and Java 6u21 problems http://www.infoq.com/news/2010/07/eclipse-java-6u21 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.194.176.157

08/02 10:59, , 1F
啊咧... ooxx... [作筆記]
08/02 10:59, 1F

08/02 13:40, , 2F
那Oracle是怎麼解決的?把名字改回去嗎@@
08/02 13:40, 2F
文章代碼(AID): #1CLXdbLA (Eclipse)
文章代碼(AID): #1CLXdbLA (Eclipse)