![](/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.