我试图从eclipse运行一个ant脚本,但它失败并显示以下消息:
BUILD FAILED
project_path/build.xml:5:
java.lang.UnsupportedClassVersionError: com/sun/tools/javac/Main :
Unsupported major.minor version 51.0
但是,当我从命令行(./ant)运行它时,它会按预期运行
环境信息:
我还设置了" Ant Home" (在eclipse设置中)与我在命令行中使用的相同。
我在这个问题上搜索了很多,但我似乎找不到任何有用的东西,我可以尝试卸载我目前安装的所有java(jdk / jre),然后重新安装java 7 ,但我不想走这条路。
有什么想法吗? 谢谢!
答案 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帖子,了解有关相同
的详细信息