我认为我最近没有对我的机器配置进行任何调整,但突然之间,在我执行了'grails clean'之后,接着是'grails war',我无法构建我的项目,原因是: “因为java.lang.UnsupportedClassVersionError”。
JDK: 1.5.0_19 on MacOS 10.6
Grails: 1.1.1
Groovy: 1.6.5
这是我执行'grails war'时得到的结果:
Welcome to Grails 1.1.1 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /usr/local/grails-1.1.1
Base Directory: /Users/Robin/code/
Running script /usr/local/grails-1.1.1/scripts/War.groovy
Environment set to production
Warning, target causing name overwriting of name startLogging
[copy] Copied 6 empty directories to 3 empty directories
under /Users/robin/.grails/1.1.1/projects/wf/resources
[mkdir] Created dir: /Users/Robin/code/web-app/plugins/ui-performance-1.2.1
[copy] Copying 1 file to /Users/Robin/code/web-app/plugins/ui-performance-1.2.1
[mkdir] Created dir: /Users/robin/.grails/1.1.1/projects/wf/classes
[groovyc] Compiling 14 source files to /Users/robin/.grails/1.1.1/projects/wf/classes
[groovyc] Compiling 262 source files to /Users/robin/.grails/1.1.1/projects/wf/classes
Compilation error: java.lang.UnsupportedClassVersionError: Bad version number in .class file
我有一些jar包含java / part Groovy类,它们是使用Groovy 1.6.5编译的。
我从哪里开始寻找导致此问题的原因?在Grails 1.1之前,我不记得在框架中遇到这么多问题。
答案 0 :(得分:1)
AFAIK,Grails 1.1.1不依赖于任何JDK 6.x功能,并且编译为1.5兼容性。我假设您至少安装了一个使用目标JDK 6.x编译的插件。
最简单的解决方案是安装JDK 6.x并使用这个与Grails相关的所有东西。如果出于某种原因无法做到这一点,您可以使用http://mindprod.com/products1.html#JARCHECK来识别“坏人”,尤其是在〜/ .grails / 1.1.1 / projects / wf / plugins中。然后使用svn检查“坏人”插件的源代码并使用JDK 1.5自行编译。