Anylogic独立Java应用运行报错求助:无法创建Java虚拟机及illegal access: deny问题
针对你遇到的“无法创建Java虚拟机”和“illegal access: deny”报错,我整理了具体的解决步骤,同时也提供几种无需安装Anylogic的模型运行方法:
一、解决Windows 7下.bat运行报错的步骤
1. 确认Java版本兼容性
Windows 7仅支持到Java 8(Oracle JDK 8u292及更早版本,或OpenJDK 8的对应发行版),Java 9及以上版本已经停止对Win7的支持。如果目标机器上装了更高版本的Java,会直接导致兼容性问题:
- 卸载高版本Java,安装Java 8(注意选择对应系统的32/64位版本)
- 确保
JAVA_HOME环境变量指向Java 8的安装目录,或者在.bat文件里直接指定Java的绝对路径
2. 修改.bat文件的JVM参数
报错里的“illegal access: deny”是因为Anylogic导出的bat可能包含Java 9+才支持的参数(比如--illegal-access=deny),而Java 8无法识别这些参数。同时内存参数过大也会导致“无法创建Java虚拟机”的问题。具体修改方法:
- 右键编辑你的模型.bat文件
- 找到调用Java的行,比如:
java -Xmx4096m --illegal-access=deny -jar YourModel.jar - 做以下调整:
- 移除
--illegal-access=deny这类Java 8不支持的参数 - 调整内存参数
-Xmx:32位Win7建议设为-Xmx1024m,64位Win7根据系统可用内存调整(比如-Xmx2048m,不要超过系统剩余内存的一半) - (可选)直接指定Java 8的绝对路径,避免系统调用错误的Java版本,修改后类似:
@echo off set "JAVA_PATH=C:\Program Files\Java\jdk1.8.0_292\bin\java.exe" "%JAVA_PATH%" -Xmx1024m -jar YourModel.jar pause
- 移除
- 保存后重新运行bat,应该就能正常启动了
二、无需安装Anylogic的其他模型运行方法
除了修改bat的方式,还有几种更便捷的方案:
1. 上传到Anylogic Cloud运行
把你的模型上传到Anylogic Cloud平台(需要Anylogic账号),生成共享链接后,用户可以直接在浏览器里运行模型,不需要安装任何软件,也不用关心Java版本问题。适合需要多人访问或跨平台使用的场景。
2. 导出为HTML5/WebGL应用
如果你的Anylogic版本是Professional或Enterprise,可以将模型导出为HTML5应用。导出后生成一个网页文件夹,用户直接用浏览器打开index.html就能运行模型,完全不需要Java环境。注意:部分复杂的模型功能(比如数据库连接)可能无法在Web环境中正常工作。
3. 打包成独立EXE文件
用工具比如Launch4j把Java程序打包成Windows EXE文件,同时可以把Java 8的JRE打包进去。用户双击EXE就能运行,不需要手动操作bat,也不用自己安装Java。步骤大概是:
- 下载Launch4j,配置好Java路径、jar文件路径、输出EXE路径
- 选择“捆绑JRE”,把Java 8的JRE文件夹打包到EXE所在目录,确保用户无需额外安装Java
4. 打包成Docker容器
如果目标机器支持Docker,可以把模型和兼容的Java 8环境打包成Docker镜像。运行时只需要启动容器即可,完全隔离系统环境,避免版本冲突。适合有一定技术基础的用户或服务器部署场景。
内容的提问来源于stack exchange,提问作者Mohammad Hasan N.




