在Unix机器上构建Ant版本1.6.0,在本例中为Solaris-构建失败的目标版本1.1与默认源版本1.5冲突

在Unix机器上构建Ant版本1.6.0,在本例中为Solaris-构建失败的目标版本1.1与默认源版本1.5冲突,ant,build,solaris,Ant,Build,Solaris,在发出故障命令后: /usr/jdk/jdk1.5.0_07/bin/java-Dant.home=-cp$CLASSPATH:./build/classes org.apache.tools.ant.Main-emacs bootstrapI收到错误: 构建失败 无法加载版本信息 在中断上述命令行之前,我运行了一个完整的./build.sh和./build install命令,得到: Buildfile:build.xml 引导: 准备: 检查\u中的\u可选\u包: 建造: 创建目录:/ex

在发出故障命令后: /usr/jdk/jdk1.5.0_07/bin/java-Dant.home=-cp$CLASSPATH:./build/classes org.apache.tools.ant.Main-emacs bootstrapI收到错误: 构建失败 无法加载版本信息

在中断上述命令行之前,我运行了一个完整的./build.sh和./build install命令,得到: Buildfile:build.xml

引导:

准备:

检查\u中的\u可选\u包:

建造: 创建目录:/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.5
,目标代码似乎是
1.1
。这是不允许的组合。编译器不知道如何从源代码构建与JVM-1.1兼容的字节码,这可能会使用1.5特定的功能

详细说明如下:

javac不接受低于其配置为接受的源语言的目标(或编译策略)。源语言的每一个新版本通常都伴随着一个新的类文件版本,该版本允许类文件赋予新字节码指令、标志和属性意义。在旧的类文件版本中编码新的源语言结构可能很困难。如果没有49.0类文件中出现的Runtime[In]Visible[Parameter]annotations属性,javac将如何编码来自java1.5源语言的注释


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

详细说明如下:

javac不接受低于其配置为接受的源语言的目标(或编译策略)。源语言的每一个新版本通常都伴随着一个新的类文件版本,该版本允许类文件赋予新字节码指令、标志和属性意义。在旧的类文件版本中编码新的源语言结构可能很困难。如果没有49.0类文件中出现的Runtime[In]Visible[Parameter]annotations属性,javac将如何编码来自java1.5源语言的注释


不幸的是,javac手册页面没有指出源和目标的这种限制。不幸的是,javac手册页面没有指出源和目标的这种限制。