当我执行“grails war”时,grails会为我构建一个war文件。我将它部署到tomcat的webapps文件夹中,运行正常 - 如果我构建战争并使用相同的JDK运行tomcat。
如果我在JDK7上构建运行grails的war文件并在JDK8上的tomcat中部署它,我遇到了问题 - 在API请求期间,我收到一个错误:java.lang.NoClassDefFoundError:java / util / HashMap $ Entry < / p>
似乎JDK7中的这个类被编译成war(或对它的引用),并且在JDK8上运行时找不到它。
有没有办法让grails将定义引入类中,以便使用7构建的war可以在8上运行 - 就像使用bootclasspath和extdirs可以使用javac一样。
有没有办法用7构建并在8上运行(和jdk 7一样)?
答案 0 :(得分:0)
始终可以将旧版本文件运行到最新版本,例如您可以在JDK-8中运行JDK-7文件,但JDK-8文件不能在JDK-7中运行
要避免此问题,请使用旧版本编译所有JDK文件,例如使用JDK-7编译所有JDK-8文件或使用一个JDK环境