java.lang.UnsatisfiedLinkError: no cplex1251 in java.library.path

本文解决了在使用Cplex和IntelliJ IDEA时遇到的DLL加载问题,详细介绍了如何检查JVM与Cplex版本匹配,并通过正确配置java.library.path来解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

在使用cplex+IntelliJ IDEA某次关闭IDEA后运行程序,报错:
java.lang.UnsatisfiedLinkError: no cplex1251 in java.library.path
Exception in thread “main” java.lang.UnsatisfiedLinkError: ilog.cplex.Cplex.CPXopenCPLEX([I)J
java.library.path must point to the directory containing the CPLEX shared library
说明程序运行时找不到cplex1251,搜索发现cplex1251代表cplex版本号的dll文件,安装目录下确实存在着cplex1251.dll

解决

JVM和cplex不符

stackoverflow有人回答:Are you running a 32-bit Java VM? That will not work with a 64-bit dll, which is something I always get wrong without noticing it. 经过验证,机器的JVM和cplex1251.dll都是64-bit,不存在这个问题。

未添加cplex1251.dll

考虑java.library.path问题,在Java中,

  • PATH是个系统环境变量,指定要执行命令的搜索路径。
  • classpath指定JVM查找类文件class file的或jar包的目录
  • Djava.library.path:java.library.path指定JVM查找动态链接库的目录(eg:.dll,.so,*.dylib)是JVM的启动参数
    类似于C/C++中的运行时环境变量
    如果要让java程序找到共享库就需要在执行java程序的时候指定java.library.path

  • Eclipse的Run/Debug settings设置VM arguments

  • intelliJ IDEA中的Run/Debug settings->configuration->VM options设置java.library.path
    但是IDEA的改了报乱码,就直接在在File->Project Structure->Libraries->+New Project Library->Native Library Locations 添加需要的dll文件所在目录,work&问题解决。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值