java - 在 Eclipse 上启动 Java 应用程序时出错
问题描述
我刚刚在 Windows 10 上安装了 Eclipse(2020 版)和 IBM ILOG CPLEX(12.6.9 版)来运行我已经拥有的 Java 代码。
该代码使用 CPLEX 的 Java API,所以我按照这些说明(在 CPLEX 官方页面上) ——他们解释了设置一个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”解压缩到“Download”内的文件夹(与“zip”同名),然后通过双击各自的“exe”安装 Eclipse 和 CPLEX(在 Windows 10 上)文件
打开 Eclipse,新建一个 Eclipse Java 项目,名为
proj1
在里面添加了四个“.java”源文件(从我电脑的另一个文件夹复制粘贴)
proj1/src/
在 Eclipse GUI 上:
Project > Properties > Java Build Path > Libraries
- 出现对话框时,单击按钮
Add External JARs
- 然后在浏览完位置后,我选择了名为
cplex.jar
.
在 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
我运行 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
。
现在,之前的错误解决了。
推荐阅读
- javascript - 错误:mergeProps 参数的类型对象值无效
- php - 输入类型文件不作为 php 电子邮件附件发送
- vba - 打开具有多个条件的报告
- json - swift中的JSON数据提取
- javascript - 使用实例化,我无法更改单个子几何图形的透明度/不透明度
- rust - 有没有办法将变量重新分配给不同的特征实现?
- jquery - 除非用户滚动,否则延迟操作
- javascript - 为什么“.includes”对循环数组内的对象起作用?
- python - 在使用 PYBIND11_MODULE 时使用 Pybind11 将 C++ 函数集成到 Python 时出错
- python - 无法使用 smtplib 在 Outlook 上的 python 中发送邮件