Smiles2Monomers执行ant preCompute命令构建失败求助
Smiles2Monomers执行
ant preCompute构建失败的问题解决 问题描述
在Windows 10环境下使用Smiles2Monomers软件包,安装过程正常,但执行ant preCompute命令时构建失败,报错核心为java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release。当前已安装Java 8(build 1.8.0_351-b10)、jdk-19和jre1.8.0_351,项目已5年未更新,提交Issue后暂无回应。
失败原因
报错的核心原因是Java 17及以上版本已弃用并彻底移除了Security Manager机制。当前执行Ant构建任务时调用了高版本JDK(如jdk-19),而Ant的Permissions组件会尝试调用System.setSecurityManager()方法,该方法在高版本Java中已被禁用,直接抛出异常导致构建终止。
解决方法
方式一:切换到Java 8执行构建
由于项目是5年前的版本,完全适配Java 8环境,步骤如下:
- 打开命令行,临时切换当前终端的Java环境到Java 8:
(请将路径替换为你实际的Java 8 JDK安装路径)set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_351 set PATH=%JAVA_HOME%\bin;%PATH% - 执行
java -version验证环境切换成功,确认输出显示Java 8版本信息 - 重新在项目目录下执行
ant preCompute
方式二:修改项目build.xml文件
若不想切换Java版本,可移除构建配置中涉及Security Manager的代码:
- 打开项目根目录下的
build.xml,定位到报错提示的第81行附近 - 找到包含
<permissions>的配置段,删除或注释掉该部分代码 - 保存修改后,重新执行
ant preCompute
内容的提问来源于stack exchange,提问作者yasel
相关产品推荐
相关产品推荐

