Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ANT编译groovy脚本时不支持major.minor 51.0版_Java_Ant_Groovy - Fatal编程技术网

Java 使用ANT编译groovy脚本时不支持major.minor 51.0版

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

我有一个groovy脚本,我正在尝试(第一次)使用ant build.xml文件编译和运行它。它抛出一个

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
环境变量,该变量指向JDK7my
JAVA_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