从eclipse运行Ant时出现UnsupportedClassVersionError

时间:2013-01-29 10:54:13

标签: java eclipse ant unsupported-class-version

我试图从eclipse运行一个ant脚本,但它失败并显示以下消息:

BUILD FAILED
project_path/build.xml:5:
java.lang.UnsupportedClassVersionError: com/sun/tools/javac/Main :
Unsupported major.minor version 51.0

但是,当我从命令行(./ant)运行它时,它会按预期运行 环境信息:

  • 操作系统:Linux Mint 64
  • Eclipse:Juno(4.2.1)
  • JDK:Oracle 1.7.0_11
  • Ant(命令行):1.8.2

我还设置了" Ant Home" (在eclipse设置中)与我在命令行中使用的相同。

我在这个问题上搜索了很多,但我似乎找不到任何有用的东西,我可以尝试卸载我目前安装的所有java(jdk / jre),然后重新安装java 7 ,但我不想走这条路。

有什么想法吗? 谢谢!

3 个答案:

答案 0 :(得分:11)

  

UnsupportedClassVersionError:com / sun / tools / javac / Main:不支持的major.minor版本51.0

这表明版本之间存在一些混淆--Ant尝试在Java 6 JVM上运行Java 7 javac。查看项目属性,构建器,Ant Builder,并检查classpath部分。在我的Eclipse上使用新创建的Ant Builder,我在我的1.7 JDK下列出了用户条目下的tools.jar - >额外的任务和支持。如果你有相同的,但你的Eclipse本身在Java 6上运行,那么它将无法工作。您可以通过安装详细信息下的“about Eclipse”框找到正在运行的Java Eclipse本身 - >组态。这可能与您的项目配置使用的Java版本不同。

可能解决的另一件事是转到ant构建器设置中的JRE选项卡,并告诉它在单独的JRE中运行,而不是在Eclipse进程中运行。

答案 1 :(得分:1)

您的Eclipse ant任务正在尝试使用Java7之前的JDK / JRE运行Java7 JDK编译器。确保使用Java7 JRE来运行Eclipse。

答案 2 :(得分:0)

一般来说,如果你在Java 1.7中编译Java程序,它将创建主要版本为51.0的类文件,如果你在较低的java版本上运行它,你将得到

 java.lang.unsupportedclassversionerror unsupported major.minor version 51.0

检查this帖子,了解有关相同

的详细信息