运行jar时的NoClassDefFoundError

时间:2015-09-18 17:40:20

标签: java netbeans jar noclassdeffounderror classnotfoundexception

嗨大家我在我的项目中加入了Webcam-Capture API。

当我在Netbeans中运行时,一切正常。但是,当我将所有内容编译为可运行的jar时,我会收到此消息,尝试通过cmd行运行它。

enter image description here

你能帮助我吗?

我已经尝试解除绑定并反弹所有的罐子并改变jdks但它不起作用

2 个答案:

答案 0 :(得分:2)

在命令行中添加-classpath标志,指向文件系统中存在Webcam-Capture API的路径,除非您要创建单个包可执行文件。在您的情况下它应该类似于下面

java  -classpath YOURJAR.jar;folder_of_dependant_jar/*;. com.awesome.pagackage.Starter

YOURJAR.jar包含com.awesome.pagackage.Starter.main(String args [])

你还提到你的jar是一个可运行的jar它也意味着在导出/构建时你可以采用下列方法之一。(注意,这个功能在eclipse中,但你会得到这个想法)。每个您在库处理中看到的以下选项可以执行特定操作。

第一个选项:将依赖jar作为java包装提取到目标jar中。这意味着如果你的包是com.awesome.package并且依赖jar有包logic.package;在构建runnable jar之后,您可以在jar文件中找到这两个包。

第二个选项:我认为更多关于eclipse的特定,因为eclipse增加了自己的几个类,可运行的一代,所以我不在这里解释它。

第三种选择:最有趣的选择。它创建文件夹结构,如下面

ndon_lib \ external.jar(外部jar文件) ndon.jar(你的jar文件)

这次manifest.mf文件包含如下内容。

Class-Path: . ndon_lib/external.jar
Main-Class: com.awesome.pagackage.Starter

enter image description here

答案 1 :(得分:1)

您应该设置类路径

java -cp "your.jar"  "yourclass"