Appearance
金蝶 BOS 环境部署与 Ant 编译 JDK 版本报错解决
本文总结金蝶 EAS BOS 业务单元发布过程中常见的 Ant 脚本编译错误诊断排查,以及 JDK 版本不兼容报错的配置修复方案。
1. 问题现象
在金蝶 BOS IDE 业务建模工具中,执行“发布业务单元”或“编译元数据”时,控制台报错并中断发布流程:
text
[javac] 编译报错: 不支持的类文件大版本/小版本号或不支持 JDK 1.8 语法特性
[javac] Source option 1.5 is no longer supported. Use 1.6 or later.2. 根本原因分析
BOS 平台底层使用 Apache Ant 脚本来自动化编译生成 Java 类文件。
在某些旧版 BOS 运行环境中,Ant 构建配置文件(deploy.xml)中预设的 <javac> 编译参数 source 与 target 仍固定为旧版本的 JDK(如 1.5 或 1.6),当开发人员在代码或环境中引入 JDK 8(Java 1.8)的语法特性(如 Lambda 表达式、Stream API 或接口默认方法)时,编译器就会触发语法版本不兼容性异常。
3. 解决方案与配置修补
解决该问题无需重新安装 IDE,只需修改 BOS 插件内部的 Ant 编译配置文件 deploy.xml:
配置文件路径
D:\kingdee\BOS8.8\bos\BOSModular\bim\eclipse\plugins\com.kingdee.bos.bim_6.1.0\configs\ant\deploy.xml
修改步骤
找到 deploy.xml 中的 <target name="compile"> 节点,将 <javac> 节点的 source 与 target 属性统一更改为 1.8:
xml
<target name="compile" description="编译">
<!-- 修改 source="1.8" 与 target="1.8" -->
<javac srcdir="${srctemp}"
destdir="${dir.classes}"
debug="on"
nowarn="on"
source="1.8"
verbose="false"
fork="false"
target="1.8"
failonerror="true">
<compilerarg value="-J -client -J -Xms100m -J -Xmx100m"/>
<compilerarg value="-Xlint:unchecked"/>
<exclude name="com/kingdee/eas/basedata/master/auxacct/**/AssistantHG*.java"/>
<classpath refid="project.class.path"/>
</javac>
</target>修改完成后保存文件,无需重启 IDE,再次点击发布业务单元即可顺利编译成功!