簡體   English   中英

java.lang.NoClassDefFoundError:twitter4j / TwitterException

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM