アプリ版:「スタンプのみでお礼する」機能のリリースについて

JAVA twitter4j エラー

JAVA初心者です。
http://d.hatena.ne.jp/regeek/20100511/1273599348
で公開されているソースなのですが、コンパイルはとおるのですが、
実行する時に以下のようなエラーをはき、困っています。

##############################
上のサイトからソースをコピペする(現在のディレクトリをnowとします)
/now/Application.java
/now/LoginDialog.java
/now/TimeLine.java
twitter4j-2.1.2.jarを
/now/twitter/twitter4j-2.1.2.jarに置く

$javac -classpath twitter/twitter4j.jar *.java
$java Application ###←ここで以下のようなエラーがでます

Exception in thread "main" java.lang.NoClassDefFoundError: twitter4j/TwitterException
Caused by: java.lang.ClassNotFoundException: twitter4j.TwitterException
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334)

環境は
$java -versionで以下の通り

java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8-0ubuntu1)
OpenJDK Server VM (build 14.0-b16, mixed mode)

$javac -versionで以下の通り

javac 1.6.0_18

です。

個人的には
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)

とあるので、これはもしやUbuntuのOpenJDK Runtimeではだめなのか?
と考えているのですが・・・


どなたか解決方法をご教授頂けないでしょうか。よろしくお願いします。

A 回答 (1件)

> Exception in thread "main" java.lang.NoClassDefFoundError: twitter4j/TwitterException


これは、twitter4j.TwitterExceptionクラスが見つからずロードできないエラー。
コンパイル時だけでなく、実行時にも必要なクラスへのパスを通さなければならない。
少なくともtwitter/twitter4j.jar(と/now下のクラスファイル)に通っていないと実行できないと思う。
もし、twitter/twitter4j.jar内のクラスが他のruntimeライブラリを使用しているならそのクラスへのパスも必要。
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございます。
Eclipseでビルドパスにtwitter4j.jarを追加してコンパイル、実行したところうまくいきましたが、やはりコマンドからだとうまくいきません。
Eclipseがどのようなコマンドを出力しているのかが分かれば解決できそうです。

今後エラーメッセージなどもいろいろ勉強していく必要を感じました。
ありがとうございました!

お礼日時:2010/05/29 00:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!