jar 文件中缺少 class。返回 NoClassDefFoundError 异常
Missing class in jar file. NoClassDefFoundError exception returned
我正在尝试在我的 Maven 项目中设置 WZwave 库。我遵循了 setup page (also installed the RXTX library as described in this 视频中的说明)。在 运行 应用程序后,我收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError:
io/netty/channel/rxtx/RxtxDeviceAddress
at asd.WZWaveTest.<init>(WZWaveTest.java:13)
at asd.WZWaveTest.main(WZWaveTest.java:27)
Caused by: java.lang.ClassNotFoundException:
io.netty.channel.rxtx.RxtxDeviceAddress
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
如果我理解正确,netty-transport jar 文件缺少 class RxtxDeviceAddress 的定义。
我尝试更新到最新版本的 jar 文件 (4.0.36),但问题仍然存在。
有谁知道,还有什么问题吗?
EDIT1:我的 pom.xml 与设置页面(上面链接)中的相同,具有一些不同的属性(我更新了 "version" netty-transport dependeny 的标签来查看,如果 class 存在于那里):
我正在尝试 运行 如果来自日食 IDE。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>asd</groupId>
<artifactId>asd</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.whizzosoftware</groupId>
<artifactId>wzwave</artifactId>
<version>0.0.3</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport</artifactId>
<version>4.0.36.Final</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>
EDIT2: 它正在工作。正如@Darek 指出的那样,问题在于缺少 jar 依赖项。我添加了 netty-all.jar 和其他一些,它开始工作了。谢谢。
@Darek:如果您将您的评论作为答案,我将很乐意接受。
我猜测需要添加 netty-all
依赖项。为什么?检查在 GrepCode
上哪里可以找到 RxtxDeviceAddress
class
我正在尝试在我的 Maven 项目中设置 WZwave 库。我遵循了 setup page (also installed the RXTX library as described in this 视频中的说明)。在 运行 应用程序后,我收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError:
io/netty/channel/rxtx/RxtxDeviceAddress
at asd.WZWaveTest.<init>(WZWaveTest.java:13)
at asd.WZWaveTest.main(WZWaveTest.java:27)
Caused by: java.lang.ClassNotFoundException:
io.netty.channel.rxtx.RxtxDeviceAddress
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
如果我理解正确,netty-transport jar 文件缺少 class RxtxDeviceAddress 的定义。
我尝试更新到最新版本的 jar 文件 (4.0.36),但问题仍然存在。
有谁知道,还有什么问题吗?
EDIT1:我的 pom.xml 与设置页面(上面链接)中的相同,具有一些不同的属性(我更新了 "version" netty-transport dependeny 的标签来查看,如果 class 存在于那里):
我正在尝试 运行 如果来自日食 IDE。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>asd</groupId>
<artifactId>asd</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.whizzosoftware</groupId>
<artifactId>wzwave</artifactId>
<version>0.0.3</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport</artifactId>
<version>4.0.36.Final</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>
EDIT2: 它正在工作。正如@Darek 指出的那样,问题在于缺少 jar 依赖项。我添加了 netty-all.jar 和其他一些,它开始工作了。谢谢。
@Darek:如果您将您的评论作为答案,我将很乐意接受。
我猜测需要添加 netty-all
依赖项。为什么?检查在 GrepCode
RxtxDeviceAddress
class