在 Eclipse 上启动 Java 应用程序时出错
Error in launching Java application on Eclipse
我刚刚在 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
和 selecting 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”文件并保存在“下载”文件夹中,并下载 CPLEX 12.6.9“exe”文件
将 Eclipse 2020-12“zip”解压缩到“下载”内的一个文件夹(与“zip”同名),然后我安装 Eclipse 和 CPLEX(在 Windows 10), 通过双击它们各自的“exe”文件
打开Eclipse,新建一个Eclipse Java项目,名称为proj1
在 proj1/src/
中添加了四个“.java”源文件(从我电脑的另一个文件夹复制粘贴)
在 Eclipse GUI 上:
Project > Properties > Java Build Path > Libraries
- 出现对话框时,单击按钮
Add External JARs
- 然后在浏览位置后,我 select 名为
cplex.jar
的文件。
在 Eclipse GUI 上:
Run > Run Configurations ... > Java Application
- 当对话框出现时,我转到
Main tab
,然后 select 我的 Main Class
(称为 Scheduler_1
)
- 然后,我转到
Arguments tab
,我 select 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 [=36]的一部分=]):
proj1
src
(default packages)
:它包含四个“.java”文件(我从我电脑的另一个文件夹复制粘贴)
JRE System Library
Referenced Library
:包含cplex.jar
(我添加的外部库)
看来我的问题终于解决了!
我 post 这里是对遇到相同错误的任何人都适用的方法。
我导航到 Project -> Properties -> Build Path
,然后单击 Dependencies Tab
,然后从 Modulepath Entries
中删除了 cplex.jar
,并将其添加到 Classpath Entries
。
至此,之前的错误已经解决
我刚刚在 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
和 selecting 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”文件并保存在“下载”文件夹中,并下载 CPLEX 12.6.9“exe”文件
将 Eclipse 2020-12“zip”解压缩到“下载”内的一个文件夹(与“zip”同名),然后我安装 Eclipse 和 CPLEX(在 Windows 10), 通过双击它们各自的“exe”文件
打开Eclipse,新建一个Eclipse Java项目,名称为
proj1
在
中添加了四个“.java”源文件(从我电脑的另一个文件夹复制粘贴)proj1/src/
在 Eclipse GUI 上:
Project > Properties > Java Build Path > Libraries
- 出现对话框时,单击按钮
Add External JARs
- 然后在浏览位置后,我 select 名为
cplex.jar
的文件。
在 Eclipse GUI 上:
Run > Run Configurations ... > Java Application
- 当对话框出现时,我转到
Main tab
,然后 select 我的Main Class
(称为Scheduler_1
) - 然后,我转到
Arguments tab
,我 selectVM 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 [=36]的一部分=]):
proj1
src
(default packages)
:它包含四个“.java”文件(我从我电脑的另一个文件夹复制粘贴)
JRE System Library
Referenced Library
:包含cplex.jar
(我添加的外部库)
看来我的问题终于解决了! 我 post 这里是对遇到相同错误的任何人都适用的方法。
我导航到 Project -> Properties -> Build Path
,然后单击 Dependencies Tab
,然后从 Modulepath Entries
中删除了 cplex.jar
,并将其添加到 Classpath Entries
。
至此,之前的错误已经解决