Java 为什么Ant给了我一个不受支持的主要.次要版本错误

Java 为什么Ant给了我一个不受支持的主要.次要版本错误,java,eclipse,ant,Java,Eclipse,Ant,我正在用Ant运行这个目标 <target name="compile" depends="init" description="compile the source " > <!-- Compile the java code from ${src} into ${build} --> <javac srcdir="${src}" destdir="$

我正在用Ant运行这个目标

<target name="compile" depends="init"
    description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
</target>
下面是我在Eclipse中的编译器设置


请帮我解决这个问题。

您需要说明Ant的哪个版本和JVM的哪个版本

您可以运行
ant-v
,查看ant正在使用哪些设置

Ant 1.8*JDK 1.4或更高版本


“Unsupported major.minor version 51.0”意味着某个地方的代码是为JDK版本编译的,并且您正试图在旧版本的JDK下运行这些类。(请参阅)

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

将jre的JDK版本下载到已安装的jre中,并使用该版本
在EclipseIndigo中,如果您检查ant的运行配置上的classpath选项卡,您将看到它默认为从系统中添加tools.jar。因此,如果您使用Java7启动Eclipse并使用单独的JRE6运行ant构建,它将生成一个不受支持的ClassVersionError。当我添加JDK版本时,Eclipse从JDK中获取tools.jar,我的ant任务成功运行。

检查编译期间使用的tools.jar是否符合JRE集。如果您在eclipse上,请验证以下版本:
转到窗口->首选项
-通过在左侧窗格中的Ant下选择Runtime来检查Ant Runtime。检查“类路径”选项卡下的全局项。您可以在文件夹路径中看到版本。
-在左侧窗格中,检查Java下已安装的JRE。检查版本。
当我选择的JRE是1.6.024,Ant运行时中的tools.jar来自JDK1.7时,我也遇到了同样的问题 如果它们都来自不同的版本-1.6/1.7,请通过更正路径来更正它们。
通常,tools.jar可以在以下位置找到:C:\Program Files\Java\jdk1.x.x\lib。同样,如果需要,可以通过将JRE指向C:\Program Files\Java\jdk1.x.x\

来添加JRE。如果出现此错误是因为您有意尝试构建Java 6,但Eclipse中的其他地方有Java 7,那么可能是因为您在Java 6环境中引用了Java 7
tools.jar


您需要安装JDK 6(不是JRE)并将JRE 6
tools.jar
作为用户条目添加到构建配置的类路径中,列在JRE 7
tools.jar

上面。我想在这里添加我的结果以帮助其他人,尽管相关,但这些都没有解决我的问题。
我有一个独特的情况,我从WebLogic9.2的研讨会到使用JDK6的Helios。然而,我们的安全专家将我们推到JDK7,这迫使我的手转向Indigo


最后,我使用sysintranseprocessexplorer查找当前是否有任何东西正在使用JDK6文件夹,该文件夹仍然存在于我的系统中。果然是日食。我打开了eclipse.ini,第二行引用了JDK6,我用JDK7目录替换了它,启动了eclipse,构建成功了

一个可能的原因是在Ant构建选项中选择了不正确的JRE。右键单击build.xml并选择“运行方式…”和“Ant build…”后,确保在“配置选项”对话框的“JRE”选项卡下选择了正确的JRE。您将看到一个“单独的JRE”选项;在单击“运行”之前,确保从下拉列表中选择了适当的jdk

  • 检查是否在路径“C:\Program Files\Java”中安装了jdk,如果没有,请在计算机中安装jdk

  • 在Eclipse中,右键单击“build.xml”,然后选择runas>externaltoolsconfiguration

  • 单击“JRE”选项卡,然后单击“已安装的JRE”>“添加”>“标准虚拟机”>单击“下一步”

  • 选择目录“C:\Program Files\Java\jdk1.7.x_xx”,该目录将添加到“已安装的JRE”中

  • 选择新的JDK目录并单击“确定”

  • 单击“分离JRE”下拉列表,选择JDK版本“jdk1.7.xxx”并单击“运行”


  • 这会有帮助:)

    我遇到了同样的问题。然后我以->Ant build…->jre的身份运行。 我发现使用的jre是独立的jre,它是默认的EclipseJRE(1.6)。 然后我转到perferences->installed JREs。 并将默认EclipseJRE的位置更改为MyJDK(1.7)


    问题解决了。

    在我的例子中,项目是一个Maven,我有JDK1.8.0,Eclipse:Kepler,我从Eclipse Marketplace安装了M2Eclipse插件

    更改编译器级别没有帮助

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

    转到运行选项---->选择外部工具选项---->外部工具配置--->
    选择ant build-->select your build.xml-->在那里你会找到JDK选项---->选择你所需的JRE。

    只需通过转到ant build configuration检查你的运行时间,并将JRE更改为JDK(如果JDK 1.7,那么JRE应该是1.7)


    为项目选择了什么Java编译器?您最近重建过吗?我不确定为项目选择了什么编译器。我使用的是Eclipse,编译器符合性级别为1.6。我不确定这是否回答了问题。IIRC,Java编译器设置在项目的属性中。@trashgod是否显示了我附加的屏幕截图l你知道吗?也检查项目级设置,但我猜你在要求编译器生成1.6兼容类时使用的是1.7功能。这很有意义,在我创建此问题之前,我已经查看了你包含的链接。我发布此问题是因为,我似乎不“应该”有此问题。我使用所有最新版本的Ant/JDK/JRE/Spring/Hibernate,甚至都试图更新到最新版本的Eclipse,以确保这不是原因,但仍然出现了错误 C:\Users\..\workspace\..\build.xml:21: java.lang.UnsupportedClassVersionError: com/sun/tools/javac/Main : Unsupported major.minor version 51.0
    Apache Ant(TM) version 1.8.2
    
    JDK version is JDK 1.7.0