java.lang.NoClassDefFoundError:twitter4j / TwitterException

问题描述 投票:1回答:1

这是我第一次使用twitter4j API下载twitter推文。我正在使用Eclipse-> Maven在twitter4j-core-4.0.4.jar上设置依赖项。

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

我在远程大学unix系统上运行我的项目jar。我的runnable 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依赖项。

我无法提交可运行的jar,因为它太大了。我不知道为什么错误,因为我之前使用外部jar成功运行其他类似的程序。

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

java eclipse maven jar twitter4j
1个回答
1
投票

我想我得到了解决方案。这似乎是我不了解的基本概念。非runnable项目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 classpath变量。

© www.soinside.com 2019 - 2024. All rights reserved.