You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JModelica2.14运行报错java.lang.NoClassDefFoundError求助

解决JModelica 2.14 Win10环境下ModelicaCompiler类找不到的RuntimeError

问题复现

Win10系统通过官方二进制包安装JModelica 2.14,执行setenv.bat后启动64位Python,导入.\install\Python_64后运行以下代码报错:

import modelicacasadi_wrapper
modelicacasadi_wrapper.OptimicaOptionsWrapper()

报错信息:

RuntimeError                              Traceback (most recent call last)
<ipython-input-11-ce2bcdfa3f06> in <module>()
----> 1 modelicacasadi_wrapper.OptimicaOptionsWrapper()

C:\JModelica.org-2.14\install\Python_64\modelicacasadi_wrapper\modelicacasadi_wrapper.pyc in __init__(self, *args)
3472         __init__(ModelicaCasADi::OptimicaOptionsWrapper self, OptimicaOptionsWrapper other) -> OptimicaOptionsWrapper
3473         """
-> 3474         this = _modelicacasadi_wrapper.new_OptimicaOptionsWrapper(*args)
3475         try:
3476             self.this.append(this)

RuntimeError: java.lang.NoClassDefFoundError  org/jmodelica/optimica/compiler/ModelicaCompiler
Caused by: java.lang.ClassNotFoundException: org.jmodelica.optimica.compiler.ModelicaCompiler
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)

解决方案

1. 检查环境变量与JDK版本

  • 确认setenv.bat生效:必须在执行setenv.bat的同一个命令行窗口启动Python,否则环境变量不会加载。
  • 匹配JDK版本:JModelica 2.14仅兼容Java 8(Oracle JDK或OpenJDK),高版本JDK(如Java 11+)会出现类加载兼容问题。卸载高版本JDK,安装Java 8后重新执行setenv.bat。

2. 手动修复CLASSPATH

如果setenv.bat未正确配置Java类路径,手动添加Optimica相关Jar包:
在JModelica安装根目录的命令行窗口执行:

set CLASSPATH=%CLASSPATH%;%CD%\lib\optimica-compiler.jar;%CD%\lib\jmodelica-compiler.jar

随后启动Python重新测试代码。

3. 源码编译修复(针对类名错误推测)

若确认是wrapper二进制中类名引用错误(应为org.jmodelica.optimica.compiler.OptimicaCompiler而非ModelicaCompiler),可尝试源码编译修复:

  • 安装依赖:CMake 3.10+、Visual Studio 2017/2019(带C++工具链)、Java 8、Python 3.7.x。
  • 克隆源码时同步子模块:
    git clone --recursive https://github.com/modelon-community/jmodelica.git
    
  • 进入源码目录,修改modelicacasadi_wrapper相关代码中引用的Java类名,将ModelicaCompiler替换为OptimicaCompiler。
  • 按照官方文档步骤,用CMake生成Visual Studio工程,编译后替换原二进制文件。

内容的提问来源于stack exchange,提问作者S14p

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 13:35:19