首页 文章

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

提问于
浏览
1

在发出麻烦的命令后:/usr/jdk/jdk1.5.0_07/bin/java -Dant.home = . -cp $ CLASSPATH:./ build / classes org.apache.tools.ant.Main -emacs bootstrapI出错:BUILD FAILED无法加载版本信息

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

引导:

准备:

check_for_optional_packages:

build:Created dir:/export/home/rs841k/tmp/apache-ant-1.6.0/build/lib将233个源文件编译到/export/home/rs841k/tmp/apache-ant-1.6.0/build/cla sses javac:有谁知道这里发生了什么以及如何解决它?

1 回答

  • 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源语言的注释?

相关问题