在Unix机器上构建Ant版本1.6.0,在这种情况下为Solaris - BUILD FAILED目标版本1.1与默认源版本1.5冲突

时间:2011-10-10 14:58:38

标签: ant build solaris

打破了麻烦的命令后: /usr/jdk/jdk1.5.0_07/bin/java -Dant.home =。 -cp $ CLASSPATH:./ build / classes org.apache.tools.ant.Main -emacs bootstrapI收到错误: 建筑失败 无法加载版本信息

在打破上面的commad行之前,我运行了一个完整的./build.sh和./build安装命令并得到: Buildfile:build.xml

自举:

制备

check_for_optional_packages:

构建: 创建目录:/export/home/rs841k/tmp/apache-ant-1.6.0/build/lib 将233个源文件编译为/export/home/rs841k/tmp/apache-ant-1.6.0/build/cla 小规模企业 javac的: 有谁知道这里发生了什么以及如何解决它?

1 个答案:

答案 0 :(得分:1)

这种情况正在发生:您将sourcetarget参数传递给javac。来源似乎是1.5,目标是1.1。这是不允许的组合。编译器不知道如何从源代码构建兼容JVM-1.1的字节代码,这些代码可能使用特定于1.5的功能。

This Oracle article解释详情:

  

javac不接受低于其配置为接受的源语言的目标(或编译策略)。每种新版本的源语言通常都附带一个新的ClassFile版本,它允许ClassFile赋予新的字节码指令,标志和属性含义。在较旧的ClassFile版本中编码新的源语言结构可能很困难。如果没有49.0 ClassFile中出现的Runtime [In] Visible [Parameter] Annotations属性,javac如何编码Java 1.5源语言中的注释?