当前位置: 首页 > 知识库问答 >
问题:

java.lang.NoClassDefFoundError: twitter4j/TwitterException

刁丰羽
2023-03-14

这是我第一次使用twitter4j API下载twitter推文。我正在使用Eclipse-

<dependency>
        <groupId>org.twitter4j</groupId>
        <artifactId>twitter4j-core</artifactId>
        <version>4.0.4</version>
</dependency>

我在远程大学unix系统上运行我的项目jar。我的可运行jar(27MB)运行良好,没有任何问题,但我的不可运行jar(10KB)因以下错误而失败。

Exception in thread "main" java.lang.NoClassDefFoundError: twitter4j/TwitterException
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2570)
        at java.lang.Class.getMethod0(Class.java:2813)
        at java.lang.Class.getMethod(Class.java:1663)

项目的"Java构建路径"属性中的"库"和"订单和导出"部分确实包含了Maven依赖项。

我不能提交runnable罐子,因为它太大了。我不知道为什么会出现这种错误,因为我以前使用外部JAR成功运行过其他类似的程序。

我是Maven和Twitter4j的新手,所以我怀疑这可能是一个已知的问题。

共有1个答案

吕宸
2023-03-14

我想我找到了解决办法。这似乎是我不知道的一个基本概念。不可运行的项目jar无法在运行时访问其外部jar依赖项。必须使用classpath变量特别提到jar位置。在我的例子中,因为我在unix上使用hadoop来执行jar,所以我做了下面的工作,它成功了。

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/005/s/ss/ssp151830/twitter4j-core-4.0.2.jar

如果只使用普通java,则更新java类路径变量。

 类似资料:

相关问答

相关文章

相关阅读