这是我第一次使用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)
&#34;图书馆&#34;和&#34;订单和出口&#34; &#34; Java构建路径&#34;项目的属性确实包含Maven依赖项。
我无法提交可运行的jar,因为它太大了。我不知道为什么错误,因为我之前使用外部jar成功运行其他类似的程序。
我是Maven和Twitter4j的新手,所以我怀疑这可能是一个已知的问题。
答案 0 :(得分: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类路径变量。