问题描述
我刚刚在 Windows 10 上安装了 Eclipse(2020 版)和 IBM ILOG CPLEX(12.6.9 版),以运行我已有的 Java 代码。
代码使用 CPLEX 的 Java API,所以我按照 these few instructions (on CPLEX Official Page) - 他们解释设置 jar
和 dll
文件路径 - 设置 Eclipse 以使用 CPLEX 的 Java API。
我遵循了这些步骤,但是当我启动执行时出现此错误:
Error: Unable to initialize main class Scheduler_1 Caused by: java.lang.NoClassDefFoundError: ilog/concert/IloNumExpr
其他信息:
导航到 Run > Run Configurations ... > Java Application
并选择 Arguments tab
后,如果我单击 Show Command Line
,则会出现一个显示此输出行的对话框(我不知道它是否正确):>
`C:\Users\MY_USERNAME\Downloads\eclipse-java-2020-12-R-win32-x86_64\eclipse\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_15.0.1.v20201027-0507\jre\bin\javaw.exe`
`-Djava.library.path=CPLEX_Studio_Community129/cplex/bin/x64_win64`
`-Dfile.encoding=Cp1252`
`-p "C:\Program Files\IBM\ILOG\CPLEX_Studio_Community129\cplex\lib\cplex.jar"`
`-classpath "C:\Users\MY_USERNAME\eclipse-workspace\proj1\bin"`
`-XX:+ShowCodeDetailsInExceptionMessages Scheduler_1`
有没有人知道我遇到的错误的原因可能是什么?
要添加更多详细信息:这些是我遵循的步骤:
-
下载 Eclipse 2020-12 ".zip" 文件并保存在 "Download" 文件夹中,并下载 CPLEX 12.6.9 "exe" 文件
-
将 Eclipse 2020-12“zip”解压缩到“下载”中的一个文件夹(与“zip”同名)中,然后双击安装 Eclipse 和 CPLEX(在 Windows 10 上)在各自的“exe”文件上
-
打开 Eclipse,并创建一个新的 Eclipse Java 项目,名为
proj1
-
在 Eclipse GUI 上:
Project > Properties > Java Build Path > Libraries
- 当对话框出现时,点击按钮
Add External JARs
- 然后在浏览位置后,我选择名为
cplex.jar
的文件。
-
在 Eclipse GUI 上:
-
我运行 Java 应用程序,但出现错误:
Error: Unable to initialize main class Scheduler_1 Caused by: java.lang.NoClassDefFoundError: ilog/concert/IloNumExpr
另外,我的代码中甚至没有使用IloNumExpr
,反正它包含在cplex.jar
中(我自己查过)。
其他详细信息:这是我的项目的 directory structure
(我可以从 Package Explorer
中看到,它是 Eclipse Workspace
的一部分):
-
proj1
解决方法
看来我的问题终于解决了! 我在这里发布了对遇到相同错误的人有用的方法。
我导航到 Project -> Properties -> Build Path
,然后单击 Dependencies Tab
并从 cplex.jar
中删除了 Modulepath Entries
,并将其添加到 Classpath Entries
。
现在,之前的错误解决了。