我正在使用twitter4j 4.0.2

ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setOAuthConsumerKey(this.consumerKey);
cb.setOAuthConsumerSecret(this.consumerSecret);
cb.setOAuthAccessToken(this.accessToken);
cb.setOAuthAccessTokenSecret(this.accessTokenSecret);
this.twitter = new TwitterFactory(cb.build()).getInstance();


这是我运行此程序时遇到的错误

Exception in thread "main" java.lang.NoClassDefFoundError: com/squareup/okhttp/OkHttpClient
    at twitter4j.AlternativeHttpClientImpl.prepareClient(AlternativeHttpClientImpl.java:120)
    at twitter4j.AlternativeHttpClientImpl.getConnection(AlternativeHttpClientImpl.java:60)
    at twitter4j.HttpClientImpl.handleRequest(HttpClientImpl.java:88)
    at twitter4j.AlternativeHttpClientImpl.handleRequest(AlternativeHttpClientImpl.java:104)
    at twitter4j.HttpClientBase.request(HttpClientBase.java:53)
    at twitter4j.HttpClientBase.get(HttpClientBase.java:71)
    at twitter4j.TwitterBaseImpl.fillInIDAndScreenName(TwitterBaseImpl.java:128)
    at twitter4j.TwitterImpl.verifyCredentials(TwitterImpl.java:545)


如何使它工作?

最佳答案

似乎版本4.0.2至少对okhttp有依赖性。这仅适用于twitter4j-spdy-support软件包,而不适用于twitter4j中的其他软件包。

pom.xml具有:

     <dependency>
         <groupId>com.squareup.okhttp</groupId>
         <artifactId>okhttp</artifactId>
         <version>1.5.1</version>
     </dependency>


如果要使用twitter4j-spdy-support,则需要okhttp JAR文件。如果使用maven,则使用maven运行应用程序将解决问题。

另一个选择是不使用spdy支持并且不在类路径中。

关于java - twitter4j 4.0.2 java.lang.NoClassDefFoundError:com/squareup/okhttp/OkHttpClient,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26038285/

10-10 22:20