【发布时间】:2018-04-07 17:40:28
【问题描述】:
我知道这个问题对你来说可能很容易,但我确实遇到了问题。
例如,当我将 apache commons-lang jar 库放入与 src 文件夹处于同一级别的项目文件夹 lib 中并将此 jar 库添加到项目的构建补丁中时,eclipse 编译所有内容都没有错误,并将所有源放入导出的 .jar 文件(包括 lib 文件夹和内容)。
但是,当我启动应用程序时,我收到此错误:
23:55:42 [SEVERE] Exception in thread "main"
23:55:42 [SEVERE] java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
谁能解释一下为什么 JVM 看不到我在 lib 文件夹中的库以及在项目的构建补丁中定义的库?
我必须做什么才能让我编译的应用程序看到这个 jar 文件?
【问题讨论】:
-
使用
java命令启动应用程序jar 时,可以使用-cp选项指定运行时类路径。 -
感谢您的回复,但是是否可以让应用程序自动使用 lib 文件夹中的 jar,或者我必须创建简单的启动器来执行带有库位置的 java -cp?
-
没有。但是,为了避免每次都输入命令行,您可以创建一个 shell/bat 脚本来启动您的应用程序。
-
您是否检查了构建路径中名为“订购和导出”的另一个选项卡?如果您想将它包含在您的 .jar 中,则必须选择该库
-
jar 文件需要在 -cp 中明确列出,不像类文件可以通过包含它们所在的文件夹来添加 [链接] (docs.oracle.com/javase/tutorial/deployment/jar/basicsindex.html)
标签: java eclipse jar libraries