Java 使用ANT编译groovy脚本时不支持major.minor 51.0版
我有一个groovy脚本,我正在尝试(第一次)使用ant build.xml文件编译和运行它。它抛出一个Java 使用ANT编译groovy脚本时不支持major.minor 51.0版,java,ant,groovy,Java,Ant,Groovy,我有一个groovy脚本,我正在尝试(第一次)使用ant build.xml文件编译和运行它。它抛出一个 java.lang.UnsupportedClassVersionError 我搜索了它,结果表明这可能是版本不匹配的原因之一。我有Java1.6.0和ANT版本1.8.1。错误的原因是什么?。请提供帮助。情况可能是您正在使用已安装的JDK 7编译它。要运行它,请使用系统路径上的JRE 6 您可以使用以下命令检查版本: java -version javac -version 更新 Gr
java.lang.UnsupportedClassVersionError
我搜索了它,结果表明这可能是版本不匹配的原因之一。我有Java1.6.0和ANT版本1.8.1。错误的原因是什么?。请提供帮助。情况可能是您正在使用已安装的JDK 7编译它。要运行它,请使用系统路径上的JRE 6 您可以使用以下命令检查版本:
java -version
javac -version
更新
Groovyc本身需要JDK 7。您可以尝试运行一个早期的Groovy版本,或者升级您的JDK。org.codehaus.Groovy.ant.Groovyc不需要Java 7,应该需要Java 5 实际上,我刚刚用
javap
检查了groovy-all-2.2.0.jar
,groovy-all-2.2.1.jar
,groovy-ant-2.2.0.jar
和groovy-ant-2.2.1.jar
,它们都显示:
$ javap -verbose org/codehaus/groovy/ant/Groovyc.class
Classfile org/codehaus/groovy/ant/Groovyc.class
Last modified 18-Nov-2013; size 26620 bytes
MD5 checksum 6d629004a728203e26a1671626cf3dab
Compiled from "Groovyc.java"
public class org.codehaus.groovy.ant.Groovyc extends org.apache.tools.ant.taskdefs.MatchingTask
SourceFile: "Groovyc.java"
InnerClasses:
#306; //class org/codehaus/groovy/ant/Groovyc$1
public static #488= #114 of #698; //Entry=class java/util/Map$Entry of class java/util/Map
minor version: 0
major version: 49
flags: ACC_PUBLIC, ACC_SUPER
主要版本:49
是Java5
唯一需要注意的是,如果您使用indy
jars。这些是使用
因此,作为一般规则,您应该使用
groovy-ant-2.2.1.jar
或完整的groovy-all-2.2.1.jar
(两者都可以使用Java5+)Java-version和javac-version都是1.6.0\u35Version51代表JDK7。因此,它以某种方式潜入了编译过程。我猜想:您有一些旧文件在编译期间没有更新,或者您可以从ant脚本输出javac
版本(使用
)或者您的ANT脚本以某种方式找到了JDK7的安装位置,即存在JAVA_HOME
环境变量,该变量指向JDK7myJAVA_HOME
变量为C:\JAVA\jdk-6u35-x64。实际上,错误是在build.xml文件classname中的这一行抛出的=“org.codehaus.groovy.ant.Groovyc
,而终端中显示的错误是java.lang.UnsupportedClassVersionError:org/codehaus/groovy/ant/Groovyc
。这有帮助吗?您是否尝试指定编译目标:
?啊,看来我明白了。Groovyc本身需要JDK 7。您可以尝试运行一个早期的Groovy版本或升级您的JDK。这是哪个版本的Groovy?这是最新的Groovy 2.2版本。您使用的是哪个版本的Jar?我想是groovy-all-2.2.0-indy.jar1?这是一个特殊的Java7构建,我刚刚检查了embeddeble/groovy-all-2.2.0.jar
和embeddeble/groovy-all-2.2.1.jar
,它们在org.codehaus.groovy.ant.Groovyc