首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用smack 4.1 NoClassDefFoundError的Java:

使用smack 4.1 NoClassDefFoundError的Java:
EN

Stack Overflow用户
提问于 2015-05-14 18:24:05
回答 1查看 1.2K关注 0票数 2

我正在尝试使用smack 4.1.1编写XMPP。我在构建路径中添加了smack jar文件。我正在使用eclipse编写代码。

但是,当我试图运行应用程序时,我会得到NoClassDefFoundErrors。我修正了将xpp3、jxmpp和minidns jar文件添加到构建路径中的一些错误。然而,我得到了以下错误。

代码语言:javascript
复制
Exception in thread "main" java.lang.NoClassDefFoundError: org/jxmpp/util/cache/ExpirationCache
at org.jivesoftware.smack.util.dns.minidns.MiniDnsResolver.<clinit>(MiniDnsResolver.java:46)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:274)
at org.jivesoftware.smack.SmackInitialization.loadSmackClass(SmackInitialization.java:213)
at org.jivesoftware.smack.SmackInitialization.parseClassesToLoad(SmackInitialization.java:193)
at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:163)
at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:148)
at org.jivesoftware.smack.SmackInitialization.<clinit>(SmackInitialization.java:116)
at org.jivesoftware.smack.SmackConfiguration.getVersion(SmackConfiguration.java:96)
at org.jivesoftware.smack.ConnectionConfiguration.<clinit>(ConnectionConfiguration.java:38)
at JabberSmackAPI.login(JabberSmackAPI.java:29)
at JabberSmackAPI.main(JabberSmackAPI.java:76)
Caused by: java.lang.ClassNotFoundException: org.jxmpp.util.cache.ExpirationCache
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 12 more

如何解决这个问题?

在互联网上,建议使用gradle或maven来构建。如果是的话,你能帮我如何使用吗?我以前从没用过。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-15 09:44:51

如下所示,堆栈跟踪

代码语言:javascript
复制
Caused by: java.lang.ClassNotFoundException: org.jxmpp.util.cache.ExpirationCache
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)

在类路径中,似乎缺少jxmpp cache-0.5.0-alpha 2.jar。下载并将此jar添加到应用程序的lib/目录中。

在互联网上,建议使用gradle或maven来构建。如果是的话,你能帮我如何使用吗?

在eclipse .If中创建一个meven项目您对meven项目还不熟悉。

如何使用Maven创建Java项目

并将下面的依赖项添加到meven构建项目的pom.xml中。

代码语言:javascript
复制
<dependency>
   <groupId>org.igniterealtime.smack</groupId>
      <artifactId>smack-java7</artifactId>
      <version>4.1.0</version>
 </dependency>
<dependency>
        <groupId>org.igniterealtime.smack</groupId>
        <artifactId>smack-tcp</artifactId>
        <version>4.1.0</version>
</dependency>
<dependency>
        <groupId>org.igniterealtime.smack</groupId>
        <artifactId>smack-im</artifactId>
        <version>4.1.0</version>
</dependency>
<dependency>
        <groupId>org.igniterealtime.smack</groupId>
        <artifactId>smack-extensions</artifactId>
        <version>4.1.0</version>
</dependency>

有关更多详细信息,请参阅此链接

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30244598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档