Java 7+Grails2.4.3使用j2html报错:无法加载j2html.TagCreator类
解决j2html在Java 1.7 + Grails 2.4.3环境下的编译错误
嘿,我一眼就揪出问题根源了!从你贴的报错信息里java.lang.NoClassDefFoundError: Unable to load class j2html.TagCreator due to missing dependency java/util/function/Predicate就能看明白:
问题本质
java.util.function.Predicate是Java 8才新增的函数式接口,但你用的j2html 1.2.0版本已经依赖了Java 8的API,可你的项目环境还是Java 1.7,编译时自然找不到这个类,直接报错。
两种可行解决方案
根据你的项目约束选一个就行:
方案1:降级j2html到兼容Java 7的版本
j2html的1.0.x系列还保留着对Java 7的支持,把Gradle依赖改成下面这样就行:
compile 'com.j2html:j2html:1.0.0'
这个版本不会用到Java 8的新特性,完美适配你的现有环境。
方案2:升级Java到8(如果项目允许)
Grails 2.4.3本身是支持Java 8的,要是你能把项目的Java环境升级到1.8,那不用改j2html版本也能正常用。升级后记得检查Gradle和Grails的编译配置,确保都指向Java 8。
验证步骤
改完配置后,按下面步骤确认问题解决:
- 先清掉编译缓存:
grails clean - 重新编译项目:
grails compile - 启动项目试试功能是否正常
内容的提问来源于stack exchange,提问作者Pawel
相关产品推荐
相关产品推荐

