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