據(jù)開發(fā)者透露,Java 8的最新更新版本update 11導(dǎo)致了一些第三方工具不兼容問題。
其中受影響的工具包括JavaEE開發(fā)工具JRebel、Java字節(jié)碼操作庫Javassist、依賴注入框架Google Guice、代碼覆蓋工具Jacoco等,此外,Groovy編程語言也被報告不兼容。目前甲骨文公司已經(jīng)證實(shí)了這個bug。
該bug似乎由Java 8u11中的JVM字節(jié)碼驗(yàn)證子系統(tǒng)發(fā)生變化而導(dǎo)致的。Java語言要求任何調(diào)用超類構(gòu)造函數(shù)必須在第一次調(diào)用時進(jìn)行,但Java早期版本中的字節(jié)碼驗(yàn)證器并沒有強(qiáng)制去驗(yàn)證,甲骨文公司開始考慮解決這一問題,但目前來看似乎影響了一些第三方工具。
甲骨文公司目前還沒有公布修復(fù)日期,目前為止唯一的解決辦法是使用-noverify參數(shù),或者先不要升級Java版本,等甲骨文修復(fù)后再升級。目前也有一些第三方工具通過升級解決了這一問題,比如JRebel 5.6.1最新版。
更多信息請查看IT技術(shù)專欄