在Unix机器上构建Ant版本1.6.0,在本例中为Solaris-构建失败的目标版本1.1与默认源版本1.5冲突
在发出故障命令后: /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 塞斯 爪哇语:在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
有人知道这里发生了什么以及如何解决吗?发生了这样的事情:您正在将
源代码和目标参数传递给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手册页面没有指出源和目标的这种限制。