• 締切済み

Twitter4j javaについて

私は現在Twitter4Jを使ってサンプルプログラムを動かそうと思い このサイトを参考にしました http://blog.goo.ne.jp/xmldtp/e/673a90905a44b770d7e3e74692c0e984  ・・・(1)  上記サイトの中にサンプルプログラムへ飛ぶリンクがあり http://blog.goo.ne.jp/xmldtp/e/edff0e2ede37dc7d335984e647271785 ・・・(2) ↑ここのページのサンプルプログラムをeclipceで(1)のURLの通りししたのですがTwitter4jのバージョンの違いのせい(?)で問題が発生しました。私がインストールしたTwitter4jは最新版の3.0.1で、(1)のサイトではバージョン2.5.5のTwitter4jを使っています。 具体的に何が問題かと言うと (2)のサイトのサンプルプログラムの 1:import twitter4j.Tweet; ができない 2:q.setPage(i);       が未定義 3:List<Tweet> tweets = result.getTweets(); のTweet型が解決できない 4:for (Tweet tweet : tweets) {         ののTweet型が解決できない の4つです。 私が考えた解決方法は以下の3つです。 1、(2)のサンプルプログラムを最新版のバージョン3.5.5に対応できるように書き換える 2、どうにかしてtwitter4jバージョン2.5.5を手に入れる 3、最新版のバージョン前提で作られたサンプルプログラムを探す なるべく2以外の方法でやりたいです。 最終的には(1)のサイトの通りに実行したいのです。現状のイメージとして私のeclipceの画像を添付します。 アドバイスをよろしくお願いします。

みんなの回答

  • yusukey
  • ベストアンサー率56% (17/30)
回答No.3

Twitter4J 3.0.xではTweetインターフェースは廃止されてStatusインターフェースを使うようになっています。 移行ガイドがありますのでご参照ください。 http://twitter4j.org/ja/versions.html#migration22x-30x 解決しない場合はメーリングリストへお気軽にお尋ねください。 http://twitter4j.org/ja/index.html#mailingList

参考URL:
http://twitter4j.org
  • co_maam
  • ベストアンサー率65% (13/20)
回答No.2

結論から言うと、ライブラリのバージョンが違うのが原因です。 参考にされたというサイトを確認しましたが、 そちらのサイトで利用していたのはバージョン2.2.0です。 当方で確認したところ、 バージョン2.2.0のライブラリを使用してサンプルプログラムをビルドした場合エラーは出ませんでした。 代わりに、現最新版(バージョン3.0.1)でビルドしたところ、 質問者と同じ箇所でビルドエラーになったので、 質問者も最新のバージョンのライブラリを利用しているのではないでしょうか? サンプルプログラムを公開しているサイトを模倣するときは、 環境を同じにするのは当たり前の作業です。 もしサイトと違う環境で使用するのであれば、 同じ環境で確認してから環境を変えるべきでした。 ちなみに、No.1の方がおっしゃった「twitter4jの置き場所」は、 クラスパスが通っていない可能性の一つとして提示しただけだと思います。 twitter4jの置き場所は、クラスパスの通っている場所であればどこでも構いません。 (「クラスパスの通っている場所」にきまっているのは確かですが…)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

3,4のエラーは 1のimportが失敗しているから発生しているエラーでしょう。 2も、twitter4j.Queryがimportできず、同名の別のQueryクラスが使われて、そのQueryにはsetPageメソッドが無い、ということではないでしょうか。 CLASSPATHの設定とか、twitter4jの置き場所とかは正しいですか?

ziraiyasennsei
質問者

補足

回答ありがとうございます。クラスパスの仕方は大丈夫ですが、twtter4jの置き場所があるなんて知りませんでした。ぜひ教えてください。