![](/img/trans.png)
[英]Twitter4j Google App Engine - java.lang.NoClassDefFoundError
[英]java.lang.NoClassDefFoundError: twitter4j/TwitterException
这是我第一次使用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。 我的可运行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的新手,所以我怀疑这可能是一个已知问题。
我想我已经找到了解决方案。 看来这是我不知道的基本概念。 不可运行的项目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变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.