为什么Ant给我一个不受支持的major.minor版本错误

我在Ant中运行这个目标。

<target name="compile" depends="init" description="compile the source " > <!-- Compile the java code from ${src} into ${build} --> <javac srcdir="${src}" destdir="${build}"/> </target> 

这是给我这个错误。

 C:\ Users \ .. \ workspace \ .. \ build.xml:21:java.lang.UnsupportedClassVersionError: 
     com / sun / tools / javac / Main:不受支持的major.minor版本51.0

这里是版本:

 Apache Ant(TM) version 1.8.2 JDK version is JDK 1.7.0 

这是我在Eclipse中的编译器设置。

在这里输入图像说明

请帮我解决它。

检查编译期间使用的tools.jar是否符合JRE集。 如果你在eclipse上,validation版本为:
转到窗口 – >首选项
– 通过在左侧窗格中selectAnt下的运行时来检查Ant运行时。 检查类path选项卡下的全局条目。 您可以在文件夹path中看到版本。
– 在左侧窗格中检查Java下安装的JRE。 检查版本。
当我select的JRE是1.6.0_24,Ant运行时中的tools.jar来自jdk 1.7时,我也遇到了同样的问题。如果两者都来自不同的版本1.6 / 1.7,请纠正它们的path。 通常,tools.jar位于:C:\ Program Files \ Java \ jdk1.xx \ lib。 同样,如果需要,通过将它指向C:\ Program Files \ Java \ jdk1.xx \

运行时jre被设置为jre 6,而不是在构buildconfiguration窗口中的jre 7。

  1. 检查是否在path“C:\ Program Files \ Java”中安装了jdk。如果没有,请在您的机器上安装JDK

  2. 在Eclipse中,右键单击“build.xml”,然后select运行方式>外部工具configuration

  3. 点击“ JRE ”标签,然后点击“已安装的JRE”>“添加”>“标准虚拟机”>点击“下一步

  4. select目录“C:\ Program Files \ Java \ jdk1.7.x_xx” ,目录将被添加到“安装的Jres”

  5. select新的JDK目录并单击“确定”

  6. 点击“Seperate JRE”下拉菜单并selectJDK版本“jdk1.7.x_xx ”并点击“ 运行

这将有助于:)

你需要说哪个版本的Ant和哪个JVM版本。

您可以运行ant -v来查看Ant 根据文档使用的设置

Ant 1.8 * 需要 JDK 1.4或更高版本。

“不支持的major.minor版本51.0”表示代码是为某个版本的JDK编译的,而且您正尝试在旧版本的JDK下运行这些类。 (见这里 )

一个可能的原因是在Ant构build选项中select了不正确的JRE。 右键单击build.xml并select“Run As …”,然后select“Ant Build …”,确保在configuration选项对话框的JRE选项卡下select了正确的JRE。 你会看到一个“独立的JRE”选项; 确保在点击“运行”之前从下拉菜单中select相应的jdk。

将JRE的JDK版本下载到已安装的JRE,然后使用它。
在Eclipse Indigo中,如果您检查ant运行configuration上的类path选项卡,将会看到它默认从系统添加tools.jar。 因此,如果您使用Java7启动Eclipse并使用单独的JRE6运行Ant构build,则会生成一个UnsupportedClassVersionError。 当我添加JDK版本时,Eclipse从JDK中拾取了tools.jar,并且我的ant任务成功运行。

我遇到了同样的问题。 然后我进入Run as – > Ant build …-> jre。 我发现使用的JRE是单独的JRE,它是默认的Eclipse JRE(1.6)。 然后我去了perferences – >安装了JRE。 并将默认的Eclipse JRE的位置更改为我的jdk(1.7)。

问题解决了。

我想在这里添加我的结果来帮助其他人,尽pipe相关的,这些都没有解决我的问题。
我有从JDK6的weblogic 9.2到Helios的独特的情况。 然而,我们的安全专家把我们推到JDK7上,这迫使我的手去Indigo。

最后,我使用sysinternals进程资源pipe理器来查找是否有任何东西正在使用我的系统上仍然存在的JDK6文件夹。 果然是Eclipse。 我打开了eclipse.ini,第二行是引用JDK6,我用JDK7目录replace了这个,启动Eclipse,构build成功。

如果您因为有意尝试构build到Java 6而出现此错误,但在Eclipse中的其他位置安装了Java 7,则可能是因为您正在Java 6环境中引用Java 7 tools.jar

您将需要安装JDK 6( 不是 JRE),并将JRE 6 tools.jar作为用户条目添加到JRE 7 tools.jar上面列出的构buildconfiguration的Classpath中。

就我而言,该项目是一个Maven,我有JDK 1.8.0,Eclipse:Kepler,我从Eclipse Marketplace安装了M2Eclipse插件。

改变编译器级别没有帮助。

最后我用了最新版本的eclipse(Luna),编译器级别为1.7,同样的M2Eclipse插件,问题解决了。

去运行选项—>select外部工具选项—->外部工具configuration—>selectant build —->select你的build.xml —>在那里你会发现JDK选项— >select你需要的JRE。

只需要检查一下你的运行时间就可以进入ant buildconfiguration,把jre改成jdk(如果jdk 1.7则jre应该是1.7)。

在这里input图像说明