【问题标题】:ant javac compile throws an exceptionant javac compile 抛出异常
【发布时间】:2013-07-03 04:22:16
【问题描述】:

我是编写 ant 脚本的新手。我有 Java 1.4 中的代码,当我编译以下 ant 脚本时

<target depends="init" name="javacompile">
    <javac srcdir="${src}" destdir="${dest}" source="1.4" target="1.4"/>
</target>

我得到一个 不支持的 major.minor 版本 49.0 异常。

java.lang.UnsupportedClassVersionError: com/sun/tools/javac/Main(不支持的major.minor 49.0版)

【问题讨论】:

  • 你运行的是什么版本的java
  • 我在 eclipse 中使用 Java 1.4 运行。问题已解决,脚本使用的是 websphere5 中的 java。谢谢。
  • 升级警告:Java 8 正在放弃对 Java 1.5 及更早版本的支持......openjdk.java.net/jeps/182

标签: ant build


【解决方案1】:

错误是说您的 Ant 脚本需要 Java 1.4,但您运行的是 JDK 5.0:

这些是主要/次要数字的映射:

http://en.wikipedia.org/wiki/Java_class_file

J2SE 8 = 52 (0x34 hex),,
J2SE 7 = 51 (0x33 hex),
J2SE 6.0 = 50 (0x32 hex),
J2SE 5.0 = 49 (0x31 hex),
JDK 1.4 = 48 (0x30 hex),
JDK 1.3 = 47 (0x2F hex),
JDK 1.2 = 46 (0x2E hex),
JDK 1.1 = 45 (0x2D hex).

建议:

删除 source="1.4" target="1.4" 限定符(如果可能)。

【讨论】:

  • 在删除了 source="1.4" target="1.4" 限定词之后,我得到了同样的错误。我正在使用eclipse来运行ant。我已将 project->properties Java 编译器中的编译器设置设置为 1.4,并且构建路径具有 1.4 库。是否需要进行其他设置。
  • 听起来你肯定有 Java 1.5。如果您可以只允许默认的 Java 版本(而不是试图强制 1.4),生活会很美好。请记住:较新的 JRE 运行时与较旧的类文件/jarfile 向后兼容。如果您不能这样做,那么您必须在构建和运行时路径中指定一个 VALID INSTALLED JRE,并且您必须始终在“ant”以及所有 Eclipse 中使用相同的目标标志设置。也看这里:stackoverflow.com/questions/7073485/…
  • 谢谢。我正在使用 websphere5,而 ant 脚本正在使用 websphere 文件夹中的 java lib [Java 版本 5.0]。我已将其指向 1.4 。现在它起作用了。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 2011-05-30
  • 1970-01-01
  • 1970-01-01
  • 2011-02-25
相关资源
最近更新 更多