5

我正在尝试从 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
  • 日食:朱诺 (4.2.1)
  • JDK:甲骨文 1.7.0_11
  • 蚂蚁(命令行):1.8.2

我还将“Ant Home”(在 Eclipse 设置中)设置为与我在命令行中使用的相同。

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

有任何想法吗?谢谢!

4

3 回答 3

11

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

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

另一件可能修复它的事情是转到 ant builder 设置中的 JRE 选项卡,并告诉它在单独的 JRE 中运行,而不是在 Eclipse 进程中运行。

于 2013-01-29T10:57:06.680 回答
1

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

于 2013-01-29T11:00:35.293 回答
0

通常,如果您在 Java 1.7 中编译 Java 程序,它将创建主版本为 51.0 的类文件,如果您在较低的 Java 版本上运行它,您将得到

 java.lang.unsupportedclassversionerror unsupported major.minor version 51.0

查看帖子以获取更多详细信息

于 2013-01-29T10:58:51.907 回答