Java 8 升级导致第三方工具不兼容

jopen 10年前

据开发者透露,Java 8的最新更新版本update 11导致了一些第三方工具不兼容问题。

其中受影响的工具包括JavaEE开发工具JRebel、Java字节码操作库Javassist、依赖注入框架Google Guice、代码覆盖工具Jacoco等,此外,Groovy编程语言也被报告不兼容。目前甲骨文公司已经证实了这个bug。

该bug似乎由Java 8u11中的JVM字节码验证子系统发生变化而导致的。Java语言要求任何调用超类构造函数必须在第一次调用时进行,但Java早期版本中的字节码验证器并没有强制去验证,甲骨文公司开始考虑解决这一问题,但目前来看似乎影响了一些第三方工具。

甲骨文公司目前还没有公布修复日期,目前为止唯一的解决办法是使用-noverify参数,或者先不要升级Java版本,等甲骨文修复后再升级。目前也有一些第三方工具通过升级解决了这一问题,比如JRebel 5.6.1最新版。

来自:infoq