java - 可运行 jar 时出现 NoClassDefFoundError

标签 java netbeans jar noclassdeffounderror classnotfoundexception

大家好,我已将 Webcam-Capture API 包含在我的项目中。

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

enter image description here

你们谁能帮我吗?

我已经尝试解除绑定(bind)并反弹所有 jar 并更改 jdks,但它不起作用

最佳答案

在命令行中添加 -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; ,构建可运行的 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

关于java - 可运行 jar 时出现 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32657985/

相关文章:

android - Gradle 将重复文件放入 apk 文件中

java - 如何为java项目生成jar文件并在android项目中使用jar

java - 如何找到相对文本大小

java - 如何增加 JFileChooser 的大小?

java - SpringBoot 2.1.x中使用RestTemplateBuilder的requestFactory自定义RestTemplate不向下兼容1.5.x版本

java - 为什么 compareTo() 中的参数不接受类名而只接受对象?

java - 使用java从数据库检索数据并以条形图显示

c++ - 在 NetBeans 8.0 中的什么位置分配 SDL 2.0.3 目录?

css - sass 输出 : @media -sass-debug-info. 中出现奇怪的 "debug"错误 .. 困惑的 css 文件

java - 插件在 Eclipse 中不生效