如何查找适配Java 6的Javassist库最新兼容版本
解决Java 6兼容的Javassist版本问题
首先给你一个明确的答案:Javassist 3.20.0-GA 是最后一个官方支持Java 6的稳定版本。从3.21.0-GA开始,Javassist就要求运行环境为Java 7或更高版本了。
如果你想自己验证或者确认其他可能的版本,可以试试这几个方法:
- 检查Maven仓库中对应版本的
pom.xml文件:旧版本的Javassist会在pom里明确指定<maven.compiler.source>和<maven.compiler.target>为1.6,这就意味着它是兼容Java 6的。比如3.20.0-GA的pom里就有这个配置,而3.21及以上版本的pom里已经改成了1.7。 - 查看旧版本的发布日志:虽然官网的最新文档里不会提旧版本的兼容信息,但你可以去Javassist的代码仓库翻旧版本的发布说明。比如3.21.0-GA的release note里就明确写了“Require Java 7 or higher”,反过来就能确认之前的版本支持Java 6。
- 实际测试:下载目标版本的jar包,放到你的Java 6项目环境里,写一段简单的Javassist代码(比如创建一个动态类)运行试试。如果没有抛出
UnsupportedClassVersionError这类版本不兼容的错误,就说明这个版本可以用。
另外要注意,3.20.0-GA毕竟是比较旧的版本,可能存在一些已知的bug,但由于你的项目无法升级到更高版本的Java,这应该是目前能找到的最新兼容版本了。
内容的提问来源于stack exchange,提问作者Michael Dz
相关产品推荐
相关产品推荐

