据开发者透露,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 最新版。 Via infoq |
|