Why is Ant giving me a Unsupported major.minor version error
我在蚂蚁中运行这个目标。
1 2 3 4 5 | <target name="compile" depends="init" description="compile the source"> <!-- Compile the java code from ${src} into ${build} --> <javac srcdir="${src}" destdir="${build}"/> </target> |
它给了我这个错误。
1 2 | C:\Users\..\workspace\..\build.xml:21: java.lang.UnsupportedClassVersionError: com/sun/tools/javac/Main : Unsupported major.minor version 51.0 |
以下是版本:
1 2 3 | Apache Ant(TM) version 1.8.2 JDK version is JDK 1.7.0 |
这是Eclipse中的编译器设置。
请帮我解决。
检查编译期间使用的tools.jar是否符合JRE集。如果您在Eclipse上,请验证以下版本:转到窗口->首选项-通过在左窗格中选择Ant下的Runtime来检查Ant运行时。检查ClassPath选项卡下的全局条目。您可以在文件夹路径中看到版本。-在左侧窗格上,在Java下安装JRE。检查版本。当我选择的jre是1.6.0_24,而tools.jar在Ant运行时来自JDK1.7时,我也遇到了同样的问题。如果这两个版本都来自不同的版本-1.6/1.7,则通过更正路径来更正它们。通常,To.S.JAR可以在:C:程序文件javajdk1.x.xLIB中找到。同样,如果需要,将JRE指向C:程序文件javajdk1.x.x.
在构建配置窗口中,运行时JRE被设置为JRE 6而不是JRE 7。
检查是否在"C:程序文件 Java"中安装了JDK,如果没有在机器中安装JDK
在Eclipse中,右键单击"build.xml",然后选择运行方式>外部工具配置。
点击"JRE"选项卡,然后点击"Installed JRE">"Add">"Standard VM">点击"Next"。
选择目录"c:程序文件javajdk1.7.xxxx",目录将被添加到"安装的JRE"中。
选择新的JDK目录并单击"确定"
单击"分离JRE"下拉列表,选择JDK版本"JDK1.7.x_xx",然后单击"运行"
这将有助于:)
您需要说明Ant的哪个版本和JVM的哪个版本。
您可以运行
Ant 1.8*需要JDK 1.4或更高版本。
"unsupported major.minor version 51.0"意味着某个地方的代码是为JDK的某个版本编译的,而您正试图在旧版本的JDK下运行这些类。(见此处)
一个可能的原因是在Ant构建选项中选择的JRE不正确。右键单击build.xml并选择"运行方式…",然后选择"ant build…",确保在"配置选项"对话框的jre选项卡下选择了正确的jre。您将看到一个"单独的JRE"选项;在单击"运行"之前,请确保从下拉列表中选择了适当的JDK。
我也遇到了同样的问题。然后我开始运行as->ant build…->jre。我发现使用的JRE是单独的JRE,它是默认的EclipseJRE(1.6)。然后我转到Perferences->Installed JRE。并将默认EclipseJRE的位置更改为my JDK(1.7)。
问题解决了。
将JRE的JDK版本下载到已安装的JRE,然后使用它。
在EclipseIndigo中,如果您在Ant的运行配置上检查ClassPath选项卡,您将看到它默认为从系统中添加tools.jar。因此,如果您使用Java7启动Eclipse,并使用单独的JRE6运行一个Ant构建,它将生成一个不受支持的ClassVersionError。当我添加JDK版本时,Eclipse从JDK中获取了tools.jar,我的Ant任务成功运行。
我想在这里添加我的结果来帮助其他人,尽管相关,但这些都没有解决我的问题。我有一个独特的情况,从WebLogic9.2的研讨会到带JDK6的Helios。然而,我们的安全专家把我们推进了JDK7,这迫使我的手去了靛蓝。
最后,我使用SysInternals Process Explorer查找当前是否有任何东西正在使用我的系统上仍然存在的JDK6文件夹。当然是日食。我打开eclipse.ini,第二行引用了jdk6,我用jdk7目录替换了它,启动了eclipse,构建成功。
只需通过转到Ant构建配置检查运行时间,并将JRE更改为JDK(如果JDK 1.7,则JRE应为1.7)。
在此处输入图像描述
转到运行选项--->选择外部工具选项---->外部工具配置--->选择ant build---->选择build.xml--->在这里您将找到jdk选项--->选择所需的jre。
在我的例子中,这个项目是一个Maven,我有JDK1.8.0,Eclipse:Kepler,我从EclipseMarketplace安装了M2Eclipse插件。
更改编译器级别没有帮助。
最后,我使用了最新版本的Eclipse(Luna),编译器级别1.7,同样的M2Eclipse插件,问题得到了解决。
如果您是因为有意地尝试构建Java 6,而在Eclipse其他地方拥有Java 7,那么这可能是因为您在Java 6环境中引用Java 7 EDCOX1 1。
您需要安装JDK 6(而不是JRE),并将JRE 6