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

来源:互联网 发布:java ant.jar 编辑:程序博客网 时间:2024/06/14 07:04

背景

在使用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&问题解决。
阅读全文
0 0
原创粉丝点击