Java - CPLEX
在大学的一个研讨会上,我需要用java编程一个模型。
由于这是一个最大化问题,我还需要涉及CPLEX方法。因此,我成功地在我的Mac OS X Version 10.5.8上安装了CPLEX。
结合CPLEX和Eclipse(我也尝试过Netbeans)我连接了我当前的项目与CPLEX库(Properties>Library>Add Library
)。
Eclipse可以识别该库,因为方法没有下划线。此外,我在我的运行配置中提交了以下参数:
-Djava.library.path=/Users/myname/Applications/IBM/ILOG/CPLEX_Studio126/cplex/bin/x86-64_osx
当我尝试运行示例代码(这是有效的)时,我得到以下错误:
java.lang.UnsatisfiedLinkError: /Users/myname/Applications/IBM/ILOG/CPLEX_Studio126/cplex/bin/x86-64_osx/libcplex1260.jnilib: no suitable image found. Did find: /Users/myname/Applications/IBM/ILOG/CPLEX_Studio126/cplex/bin/x86-64_osx/libcplex1260.jnilib: unknown required load command 0x80000022Exception in thread "main" java.lang.UnsatisfiedLinkError: ilog.cplex.Cplex.CPXopenCPLEX([I)J
at ilog.cplex.Cplex.CPXopenCPLEX(Native Method)
at ilog.cplex.CplexI.init(CplexI.java:6594)
at ilog.cplex.CplexI.<init>(CplexI.java:629)
at ilog.cplex.IloCplex.<init>(IloCplex.java:11067)
at ilog.cplex.IloCplex.<init>(IloCplex.java:11082)
at Knapsack.buildModel(Knapsack.java:54)
at Knapsack.main(Knapsack.java:122)
java.library.path must point to the directory containing the CPLEX shared library
try invoking java with java -Djava.library.path=...
你能好心地帮助我吗?我不知道该怎么办了。谢谢你的回答
我在遇到同样的问题时发现了这个问题。按照网上的建议,我发现我把-Djava.library。路径参数在错误的地方…你不仅应该仔细检查路径,还要检查你是否把参数放在了正确的位置,并且输入正确。这看起来很傻,但确实发生了:)
无论如何,在我的情况下,我使用NetBeans,我去:
- 项目属性
-
VM Options文本字段:
-Djava.library.path =/应用程序/IBM/ILOG CPLEX_Studio126/最大化策略/bin/x86 - 64 _osx
我希望这对你有帮助
-
确保您严格遵循了1中描述的设置eclipse的步骤。
-
确保在eclipse运行的环境中设置了环境变量DYLD_LIBRARY_PATH。看到2。首先检查是否设置了DYLD_LIBRARY_PATH。第二次尝试通过终端执行java程序