在 Eclipse 上启动 Java 应用程序时出错

问题描述

我刚刚在 Windows 10 上安装了 Eclipse(2020 版)和 IBM ILOG CPLEX(12.6.9 版),以运行我已有的 Java 代码

代码使用 CPLEX 的 Java API,所以我按照 these few instructions (on CPLEX Official Page) - 他们解释设置 jardll 文件路径 - 设置 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`

有没有人知道我遇到的错误的原因可能是什么?


添加更多详细信息:这些是我遵循的步骤:

  1. 下载 Eclipse 2020-12 ".zip" 文件并保存在 "Download" 文件夹中,并下载 CPLEX 12.6.9 "exe" 文件

  2. 将 Eclipse 2020-12“zip”解压缩到“下载”中的一个文件夹(与“zip”同名)中,然后双击安装 Eclipse 和 CPLEX(在 Windows 10 上)在各自的“exe”文件

  3. 打开 Eclipse,并创建一个新的 Eclipse Java 项目,名为 proj1

  4. proj1/src/添加了四个“.java”源文件(从我电脑的另一个文件夹复制粘贴)

  5. 在 Eclipse GUI 上:

    • Project > Properties > Java Build Path > Libraries
    • 当对话框出现时,点击按钮 Add External JARs
    • 然后在浏览位置后,我选择名为 cplex.jar文件
  6. 在 Eclipse GUI 上:

    • Run > Run Configurations ... > Java Application
    • 当对话框出现时,我转到 Main tab,然后选择我的 Main Class(称为 Scheduler_1
    • 然后,我转到 Arguments tab,选择 VM arguments,并将路径添加到 CPLEX 库,因此在我的情况下: -Djava.library.path=CPLEX_Studio_Community129/cplex/bin/x64_win64,这是 cplex1290.dll
    • 的路径
  7. 我运行 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
    • src
      • (default packages):它包含四个“.java”文件(我从我电脑的另一个文件夹复制粘贴)
    • JRE System Library
    • Referenced Library:它包含 cplex.jar(我添加的外部库)

解决方法

看来我的问题终于解决了! 我在这里发布了对遇到相同错误的人有用的方法。

我导航到 Project -> Properties -> Build Path,然后单击 Dependencies Tab 并从 cplex.jar 中删除了 Modulepath Entries,并将其添加到 Classpath Entries

现在,之前的错误解决了。