Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 >  掲示板 >  掲示板(実行時のNoClassDefFoundErrorについて)
閲覧数:23107
掲示板(実行時のNoClassDefFoundErrorについて)
名前
題名 実行時のNoClassDefFoundErrorについて
質問内容

質問を評価する
(0ポイント)
こんにちわ。お世話になります。
全く初めてJAVAを勉強しようとしております。

Java2SDKをダウンロード(インストール)し、
環境変数:PATHに、Javaをインストールしたディレクトリを追加
※こちらの環境では「C:\Program Files\Java\jdk1.5.0_05\bin」

DOSで、サンプルソースを「javac」でコンパイルし、「class」ファイルを生成後、
「java」で実行する(HP上に手順が記されていました。)と、下記エラーが発生します。

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWold

インターネット上で調べた手順で実行したのですが、
何が原因かわかりません。
過去ログ(http://www.javaroad.jp/bbs/answer.jsp?q_id=20050704011334825)を参照し、
コンパイル時に「javac -classpath . JAVAファイル」で、CLASSPATHを記述してコンパイル後、
実行しても同様な結果となってしまいます。

コンパイルはエラーとならず、「class」ファイルは生成されているので、PATHは通っている
と思うのですが・・・。
同じような経験をされて、解決された方が居られましたらアドバイスをお願い致します。

質問日時 2005-11-16 13:51:47
名前
mio
回答内容

回答を評価する
(0ポイント)
コンパイル時にクラスのありかを指定しても、実行時にも指定してあげなければ、見つけることができません。
回答日時 2005-11-16 14:15:46
名前
回答内容

回答を評価する
(0ポイント)
早速のご回答ありがとうございます。

「Java」ファイル・「class」ファイルは「D:\Java」というディレクトリを作成し、そこに
保存しております。
又、「classファイルの位置を指定する必要があります」と記載されていたので、
DOSにて下記のコマンドを実行すると、

D:\Java>javac -classpath D:\Java HelloWorld.java

D:\Java>java -classpath D:\Java HelloWorld
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld 
(Unsupported major.minor version 49.0)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
    ※at java.lang.〜が数行

上記のようになります。

コマンドの使い方を間違えているのでしょうか。
度々、すみませんが宜しくお願い致します。
回答日時 2005-11-16 14:50:03
名前
回答内容

回答を評価する
(0ポイント)
該当のエラーメッセージは、”HelloWorldクラスはサポートされていないクラスバージョンです。”といっています。
これはjavacとjavaのバージョンが異なるときに起こるエラーだと思われます。
javac -J-version (コンパイラのバージョン)
java  -version  (javaのバージョン)
をコマンドプロンプトでそれぞれ入力しバージョンを確認してください。
回答日時 2005-11-16 16:02:15
名前
回答内容

回答を評価する
(0ポイント)
お世話になります。
お返事が遅くなって申し訳ありません。

あれから色々とWeb等で調べてたのですが・・・。

D:\Java>javac -J-version
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) Client VM (build 1.5.0_05-b05, mixed mode, sharing)

D:\Java>java  -version
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)

教えて頂いたコマンドでバージョンを確認した所、上記のようになります。

HP上から「jdk-1_5_0_05」をダウンロード・インストールしたのですが、他に何か
インストールもしくはアップデート(パッチ)等をあてる必要があるのでしょうか。

お手数ですが、宜しくお願い致します。
回答日時 2005-11-22 11:06:16
名前
mio
回答内容

回答を評価する
(0ポイント)
_05であれば、最新なのでそれ以上のパッチはないです。
…で、動きましたか?
回答日時 2005-11-22 12:59:24
名前
回答内容

回答を評価する
(0ポイント)
お疲れ様です。CHAIです。
恥ずかしい事ながら・・・まだ動かせておりません!(泣)

1.----------CLASSPATHを指定しない場合----------

D:\Java>javac HelloWorld.java

D:\Java>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld


2.----------CLASSPATHを指定(カレントディレクトリ)した場合----------

D:\Java>javac -classpath . HelloWorld.java

D:\Java>java -classpath . HelloWorld
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld (U
nsupported major.minor version 49.0)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)


環境変数「PATH」にも「C:\Program Files\Java\jdk1.5.0_05\bin」を追加してます。
(※こちらでは上記にインストールした為。DOSより「set」コマンドで確認しました。)

もう一度、アンインストール&インストールしてみた方がいいんでしょうか?
本当に、度々すみませんが、アドバイスをお願い致します。

回答日時 2005-11-22 16:57:44
名前
mio
回答内容

回答を評価する
(0ポイント)
すでにできている*.classを削除してみてください。
回答日時 2005-11-23 09:40:04
名前
回答内容

回答を評価する
(0ポイント)
こんにちわ。
お世話になります。

mio様のアドバイス通り、classファイルを削除して、再度実行してみました。

2005/11/24  13:37    <DIR>          .
2005/11/24  13:37    <DIR>          ..
2005/11/16  11:14               113 HelloWorld.java
               1 個のファイル                 113 バイト
               2 個のディレクトリ  16,611,564,544 バイトの空き領域

D:\Java>javac -classpath . HelloWorld.java

D:\Java>java -classpath . HelloWorld
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld (U
nsupported major.minor version 49.0)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

D:\Java>del HelloWorld.class

D:\Java>javac HelloWorld.java

D:\Java>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld

D:\Java>

CLASSPATHを指定した場合と、指定しなかった場合で、それぞれ試してみましたが、
上記のようになります。
もう一度、アンインストール&インストールしてから試してみます。

お返事が遅くなってしまいましたが、申し訳ありませんでした。

回答日時 2005-11-24 13:43:10
名前
回答内容

回答を評価する
(0ポイント)
javaとjavacのバージョンは同じになっているんですよね?
回答日時 2005-11-24 15:12:45
名前
回答内容

回答を評価する
(0ポイント)
初めまして。
現在、同じエラーが出て悩んでいるので書き込みします。

C:\Program Files\Java>javac Hello.java

C:\Program Files\Java>java Hello
Exception in thread "main" java.lang.UnsupportedClassVersionError: Hello (Unsupporte
d major.minor version 49.0)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)


バージョンを調べました。

C:\Program Files\Java>javac -J-version
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) Client VM (build 1.5.0_05-b05, mixed mode, sharing)

C:\Program Files\Java>java  -version
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)

JAVAは↓ここの説明にそって入手しました。
http://www.smg.co.jp/seminar/java/index.html

アドバイスを宜しくお願いします
回答日時 2005-11-24 15:27:45
名前
回答内容

回答を評価する
(0ポイント)
上記のエラーはコンパイル環境(javac)と実行環境(java)の違いにより出力されるメッセージです。バージョンを同じにする(再インストール)して再挑戦してください。
同一バージョンになれば出来ると思うのですが。
私はそのエラーになった事がないので実体験ではないです。
回答日時 2005-11-24 16:00:39
名前
回答内容

回答を評価する
(0ポイント)
私は解決しました。
ご指摘の通り、コンパイル環境と実行環境が違いました。

「○○○のユーザー環境変数」の[PATH] と
「システム環境変数」の[PATH]とが違っていたためです。

よってpathを指定しました。
バージョンを調べる方法(-version)を教えていただいたから
解決できました。
アドバイスありがとうございました。
回答日時 2005-11-24 16:31:40
名前
mio
回答内容

回答を評価する
(0ポイント)
環境変数pathが、
.;...jre...;jdk....
となっていると思います。実行時にはjre...でjavaが見つかるのでこちらが使われ、コンパイル時はjre...で見つからずにjdk...が使われています。
jre...を削除してください。
回答日時 2005-11-24 17:34:06
名前
mio
回答内容

回答を評価する
(0ポイント)
1.4だと...jre...でなく、...j2re...でした。
回答日時 2005-11-24 17:35:44
名前
回答内容

回答を評価する
(0ポイント)
お久しぶりです。こんにちわ。
(実作業で時間を取られ、返事が遅くなってしまいました。申し訳ありません)

再インストールを行い、今まで教わった以下の手順で、Version等を確認し、
コンパイル・実行を行いました。

----------------------------(Version確認)---------------------------------
D:\STUDY\Java>javac -J-version
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) Client VM (build 1.5.0_05-b05, mixed mode, sharing)

D:\STUDY\Java>java -version
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
----------------------------(Version確認)---------------------------------

--------------------------(コンパイル後実行)------------------------------
D:\STUDY\Java>javac HelloWorld.java

D:\STUDY\Java>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
--------------------------(コンパイル後実行)------------------------------

ですが、以前と同じ結果になってしまいました。

英次様の手順にて、「ユーザー環境変数:Path」と「システム環境変数:Path」が違って
いた為・・・とありますが、「ユーザー環境変数:Path」にも

「C:\Program Files\Java\jdk1.5.0_05\bin」(こちらの環境でのパス)

を指定すると言う事でしょうか?
(試しに、「ユーザー環境変数:Path」に上記のパスを指定しても、結果は同じでした。)

何度もすみませんが宜しくお願い致します。

回答日時 2005-12-01 14:31:23
名前
回答内容

回答を評価する
(0ポイント)
こんにちわ。度々の書込みですみません。

「システム環境変数:Path」に、Oracleをインストールした際に
D:\oracle\ora92\jre\1.4.2\bin
が設定されて、ここを参照していてるのかと思い、該当するパスを削除し、
再度、実行してみました。

---------------------------(Version確認)-------------------------------
D:\STUDY\Java>javac -J-version
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) Client VM (build 1.5.0_05-b05, mixed mode, sharing)

D:\STUDY\Java>java -version
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) Client VM (build 1.5.0_05-b05, mixed mode, sharing)

D:\STUDY\Java>
---------------------------(Version確認)-------------------------------

------------------------(コンパイル後実行)-----------------------------
D:\STUDY\Java>javac HelloWorld.java

D:\STUDY\Java>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld

D:\STUDY\Java>java -classpath . HelloWorld
Hello World!

D:\STUDY\Java>
------------------------(コンパイル後実行)-----------------------------

上記で、「CLASSPATH」を指定して実行するとうまく動作しました。

目的は達成したのですが、元々Oracleをインストールした際に設定されていたパスを
「システム環境変数:Path」から削除してしまってもいいのかわかりませんが・・・。


回答日時 2005-12-01 16:00:42
名前
mio
回答内容

回答を評価する
(0ポイント)
返信に気づいてませんでした。
そのパスは、oracle本体ではないです。
問題はないはずです。
回答日時 2005-12-11 10:01:20
名前
回答内容

回答を評価する
(0ポイント)
http://goodjob.boy.jp/chirashinoura/detail/id/65.html

Exception in thread "main" java.lang.UnsupportedClassVersionError: Hello (Unsupporte
d major.minor version 49.0)
このエラーはJDK1.5で開発したクラスをJDK1.4(もしくはJRE1.4)で実行しようとしたときに出るエラーです。
JDK1.4(もしくはJRE1.4)を削除してから実行してみることをおすすめします。
回答日時 2006-02-20 13:15:25
名前
RYI
回答内容

回答を評価する
(0ポイント)
同じ現象でくるしみましたが、
僕の場合はQuickTimeが原因でした。
参考までに・・・
http://blog.livedoor.jp/livedoor_namu/archives/50288352.html
回答日時 2006-04-07 02:10:47
名前
SEI
回答内容

回答を評価する
(0ポイント)
>RYI
たすかりました〜。
回答日時 2006-04-12 10:53:43
名前
回答内容

回答を評価する
(0ポイント)
>RYI
ありがとうございます。

ここの↓中の人もありがとうございます。
http://blog.livedoor.jp/livedoor_namu/archives/50288352.html 
回答日時 2006-04-13 23:54:33
名前
回答内容

回答を評価する
(0ポイント)
>RYI
ほんとありがとうございます。
この記事なかったら解決できなかったと思います f(・・;

もちろんブログの人もありがとうございます!!
回答日時 2006-04-17 01:06:13
名前
回答内容

回答を評価する
(0ポイント)
自分も助けられました! ありがとうございました!
回答日時 2006-04-18 01:39:57
名前
回答内容

回答を評価する
(0ポイント)
QuickTimeとは....。
たすかりました。
回答日時 2006-04-20 15:11:34
名前
yu
回答内容

回答を評価する
(0ポイント)
QuickTime たすかりました。。。
回答日時 2006-05-22 13:11:26
名前
回答内容

回答を評価する
(0ポイント)
クイックタイム恐るべし!ですね。。。
PASSではなくて、CLASSPASSだったとは・・・。

通りすがりに、活用させていただきました。
ありがとうございました(TT)
回答日時 2006-05-29 04:14:58
名前
回答内容

回答を評価する
(0ポイント)
ありがとうございました! マジで助かりました!
回答日時 2006-06-16 02:09:46
名前
回答内容

回答を評価する
(0ポイント)
同じ症状なんだけど、CLASSPATHいじっても
バグ直りません…
なぜ???
回答日時 2006-06-16 22:08:22
名前
回答内容

回答を評価する
(0ポイント)
ちなみに、javaもjavacもバージョンは
1.5.0_07で、一致してました。
回答日時 2006-06-16 22:20:53
名前
回答内容

回答を評価する
(0ポイント)
自分もマジ助かりました!!ありがとうございます涙
「;」をつけるだけでいけますよ?
回答日時 2006-06-28 16:40:04
名前
回答内容

回答を評価する
(0ポイント)
わぁーーーできました!!!!
自分も同じ現象で実行できなくて困っていたんですけど、みなさまありがとうございます♪
回答日時 2006-07-22 15:01:37
名前
回答内容

回答を評価する
(0ポイント)
私も同じ症状で困っておりました。QT恐るべしですね。皆様、ありがとうございました。
回答日時 2006-08-03 17:33:27
名前
jam
回答内容

回答を評価する
(0ポイント)
申し訳ございません。環境変数のpassの変え方がわからないの
でよろしければ教えてください。
回答日時 2006-08-04 00:11:00
名前
回答内容

回答を評価する
(0ポイント)
jamさん
設定方法は、OSによって異なります。
http://www.k-cube.co.jp/wakaba/server/environ.html
をご覧ください。

私も皆さんと同じ方法で悩んでいましたが、
JAVAのクラスパスを一番初めに移動することで解決しました。
こんなことしたらだめですかね?
CHAIさんもオラクルパスより、前に持ってきていたら、動いたのではないでしょうか。
回答日時 2006-08-22 10:34:40
名前
回答内容

回答を評価する
(0ポイント)
>RYI
僕も同じ問題でつまずいていましたが、おかげさまで助かりました!ありがとうございます!

それにしても同じところで引っかかっている人がこんなにもいたとは…
回答日時 2006-08-25 16:34:52
名前
回答内容

回答を評価する
(0ポイント)
ティルさんと同じで
解決できない・・・1.5.0_08なんだけど・・・

java -cp . HelloWorld

これなら大丈夫なのに・・・
回答日時 2006-09-06 23:38:23
名前
回答内容

回答を評価する
(0ポイント)
私の場合は単純にJAVACとJAVAのバージョンが違ったので
JREのRUNTIMEをアンインストールして再度最新バージョンをインストールしたら動くようになりました。
もちろん環境変数も設定しなおしました。

にしてもQT怖いですね。。
回答日時 2006-09-08 15:46:57
名前
回答内容

回答を評価する
(0ポイント)
通りすがりです。
自分も同じ現象でしたが、直りました。

最初ひろさん達と同じで出来ませんでしたが
OS再起動でできましたよ^^
回答日時 2006-09-08 17:17:25
名前
回答内容

回答を評価する
(0ポイント)
私もQTでした!!助かりました~!!
回答日時 2006-09-16 21:58:35
名前
回答内容

回答を評価する
(0ポイント)
>RYI
私もおかげで治りました。
ありがとうございました!

しかしQTとは・・・
回答日時 2006-10-10 22:41:51
名前
回答内容

回答を評価する
(0ポイント)
私も困っているのですがRYIさんがあげていたページがもうなくなってしまいなんて書いてあったのかわかりません。何が書いてあったのですか?
回答日時 2006-10-24 04:32:39
名前
回答内容

回答を評価する
(0ポイント)
ちなみに私の場合はjava、javacともにバージョンは1.4.2_12(1.5はすべて削除した)にもかかわらず

Exception in thread "main" java.lang.UnsupportedClassVersionError: Hello (Unsupporte
d major.minor version 49.0)

がでます。また開発環境はeclipseを使用しています。
回答日時 2006-10-24 05:14:37
名前
回答内容

回答を評価する
(0ポイント)
本当にへたれだ・・・自己レスです。eclipseの設定で「JREのホームディレクトリ」という項目を「C:\j2sdk1.4.2_12\jre」とせねばならぬところを「C:\j2sdk1.4.2_12」となっていました。ここで書かれていることは一通り試したのでその中で解決していた模様です。ずっとeclipse上でエラーが出て悩んでいたのですが、コンソール上で試したらエラーとならず気がついた次第です。お騒がせしましたm(_ _)m
回答日時 2006-10-24 05:41:50
名前
回答内容

回答を評価する
(0ポイント)
私も「Exception in thread "main" java.lang.UnsupportedClassVersionError: Hello」で悩んでいるものです。

RYIさんがあげていたページがもうなくなってしまっているようで、何が書いてあったのかわかりません。申し訳ありませんが、どなたか教えていただけないでしょうか。宜しくお願いします
回答日時 2006-10-26 14:55:32
名前
回答内容

回答を評価する
(0ポイント)
RYIさんが挙げてたページはもうないので何が書いてあったと正確には答えれませんが、

http://www.mclab.ics.ritsumei.ac.jp/lecture/java/tips005.html

確かこのサイトに書いてあるのと同じ内容でした。

参考になればよいのですが

回答日時 2006-10-26 16:55:36
名前
回答内容

回答を評価する
(0ポイント)
>とおりすがりさん

ありがとうございます。
解決できました!!

回答日時 2006-10-27 10:27:13
名前
回答内容

回答を評価する
(0ポイント)
javacとjavaのヴァージョンの違い、QTのいじりの両方の原因でこのエラーが出てました。本当に助かりました。ありがとうございました!
回答日時 2006-11-19 21:13:52
名前
回答内容

回答を評価する
(0ポイント)
…ここ見なかったら、超悩んでたと思います…
Quick Time の原因でした。
本当にありがとうございます。
回答日時 2007-02-27 00:17:58
名前
回答内容

回答を評価する
(0ポイント)
どこにもエラーの対処について書いていなく困っていたところ、ここにたどり着きました。私もQuick Timeが原因でした。本当に助かりました。
回答日時 2007-03-19 18:07:07
名前
回答内容

回答を評価する
(0ポイント)
>とおりすがりさん RYIさん
ありがとうございます
完璧に行き詰ってましたが 自分もQTが原因でした
本当にありがとうございます。
回答日時 2007-04-03 15:56:25
名前
回答内容

回答を評価する
(0ポイント)
私も全く初めてJavaを勉強しようとしているのですが同じようなエラーが表示されます・・・。
ちなみに「やさしいJava・第3版」を見て勉強しています。
環境変数の設定のところで「●●●のユーザーの環境変数」と「システム変数」と2つありますが本書には、「●●●のユーザーの環境変数」の方でPATHのところにC:\Program Files\Java\jdk1.5.0_11\binを指定すると書いてありますが、「システムの環境変数」のPathのところにもこれを指定する必要があるのでしょうか?

あと上にも書かれているようにQTがCLASSPATHを書きかえることによって生じる不具合の対処法として「先頭」に.;と書かれてありますが、本書では「最後」に;.と書かれてありますこれは、どっちもやらないとダメな操作なのでしょうか?

すみませんが宜しくおねがいします。
回答日時 2007-04-15 00:01:23
名前
回答内容

回答を評価する
(0ポイント)
「ユーザの環境変数」はログインしているユーザの環境変数、「システム変数」はすべてのユーザを含んだシステムの環境変数です。「ユーザの環境変数」で設定したユーザが、Javaを利用しているユーザと一致しているなら、「ユーザの環境変数」のみで大丈夫です。

環境変数は先頭から書かれた順に読み込まれますので、優先するほうを先に記載します。どちらか一つ書けば大丈夫です。
回答日時 2007-04-15 22:35:49
名前
回答内容

回答を評価する
(0ポイント)
>>徹夫様

回答ありがとうございます。
-----------------------------------
C:\Program Files\Java>javac -J-version
java version "1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode, sharing)

C:\Program Files\Java>java  -version
java version "1.6.0_01"
Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)
----------------------------------------

上で書き忘れたのですが、どちらも最新バージョンを使っていて環境の相違がありますが、他の方が言われているようなコンパイル環境(javac)と実行環境(java)の相違によって生じるエラーは表示されずになぜかうまく実行できました。

ありがとうございました。
回答日時 2007-04-16 00:09:50
名前
mio
回答内容

回答を評価する
(0ポイント)
基本的に、下位のバージョンでコンパイルされたものは、上位のバージョンでは実行できます。
回答日時 2007-04-16 09:48:38
名前
回答内容

回答を評価する
(0ポイント)
どうも、やんやんです。

横入りですみません。

http://blog.livedoor.jp/livedoor_namu/archives/50288352.html
が既に存在しなくて、何が書いてあったのかわからないのですが、どなたかご教授頂けないでしょうか。
宜しくお願い致します。
回答日時 2007-04-17 12:07:25
名前
回答内容

回答を評価する
(0ポイント)
すでにわたしが「2006-10-26 16:55」に別のサイトを提示してますが?
回答日時 2007-04-17 12:11:55
名前
回答内容

回答を評価する
(0ポイント)
とおりすがり様、失礼致しました。
確かに確認出来ました。
有難うございました。
回答日時 2007-04-17 13:25:35
名前
回答内容

回答を評価する
(0ポイント)
3ヶ月ぶりぐらいにjavaいじったら実行できなくなってたので 焦りました。。
QTが原因だったようです
かなり参考にさせてもらいました! ありがとうございます!!!!
回答日時 2007-05-13 00:02:00
名前
回答内容

回答を評価する
(0ポイント)
自分もQTが原因でした。
CLASSPATHの初め「.;」を付け加えることでできるようになりました。
ありがとうございました。
回答日時 2007-05-16 21:54:27
名前
回答内容

回答を評価する
(0ポイント)
classpath . 〜 と指定するよりも

classpath が ;で終わってるかどうかを見たほうがいいかとおもう


classpath . (現在のディレクトリを指定) という意味なので
回答日時 2007-05-16 22:18:13
名前
回答内容

回答を評価する
(0ポイント)
参考になりました。ありがとうございました。
私の場合はEclipseを使用していたので、コンパイルの
バージョンを指定してやることで回避できました。
回答日時 2007-07-09 11:32:20
名前
回答内容

回答を評価する
(0ポイント)
こんにちは。
同じ現象で悩んでいます。
コンパイル環境(javac)と実行環境(java)は同じですし、
ユーザの環境変数にはCLASSPATHではなく、Pathがあったので、.;C:\Program Files\Java\jdk1.5.0_11\binを一番前に入れたり、CLASSPATHを作ってC:\Program Files\Java\jdk1.5.0_11\bin を入れてみたりしましたが全く解決しません。
他に解決の方法があったら教えてください。
ちなみに、QTは入ってません。
Meadowで作って、cygwinでコンパイルや実行するとできます。今回はアプレットからJAVAを呼び出すようにし、eclipseで行ったところ、このエラーがでました。ヴァージョンは5.0になっています。
回答日時 2007-08-01 16:24:19
名前
mio
回答内容

回答を評価する
(0ポイント)
Eclipseは開発環境であって実行環境ではありませんが、実行しているのはどこですか?
このエラーは、あくまで実行時の参照パスの問題です。
回答日時 2007-08-01 16:42:23
名前
回答内容

回答を評価する
(0ポイント)
早い返信、ありがとうございます!!
アプレットなのでブラウザになるのでしょうか?
回答日時 2007-08-01 16:54:49
名前
mio
回答内容

回答を評価する
(0ポイント)
そうですね。ブラウザで実行される際に見える場所に、クラスが存在する必要があります。

これは最初の質問者の状況とは、異なるものでしょう。
「アプレット NoClassDefFoundError」等、検索はしてみましたか?
回答日時 2007-08-01 17:11:53
名前
回答内容

回答を評価する
(0ポイント)
ありがとうございます。検索してみます!
回答日時 2007-08-01 17:54:58
名前
回答内容

回答を評価する
(0ポイント)
なぜかeclipseでjavaアプレットで動かしたら動きました。お騒がせいたしましたm(_ _)m
回答日時 2007-08-01 22:40:21
名前
回答内容

回答を評価する
(0ポイント)
ありがとうございます。
javac java ともにバージョン同じでしたが、
「NoClassDefFoundError」でした。

システム環境変数のCLASSPATHの最後に「;」セミコロン
を入れたら直りました。
回答日時 2007-08-10 14:26:42
名前
回答内容

回答を評価する
(0ポイント)
私も助かりました。
別のアプリケーションをインストールした際にCLASSPATHをいじったことが原因だったとは・・・
ココにたどり着いて本当に助かった。ありがとうございます!
回答日時 2007-08-12 17:08:27
名前
回答内容

回答を評価する
(0ポイント)
古いjavaRuntimeをアンインストールすることで解決することが出来ました。
ありがとうございます。
回答日時 2007-10-31 01:06:55
名前
回答内容

回答を評価する
(0ポイント)
このページのおかげで動くようになりました!ありがとうございます。
何をやっても動かず途方に暮れていました。
それにしてもQT恐ろしいですね
回答日時 2007-11-07 16:09:01
名前
回答内容

回答を評価する
(0ポイント)
私も助けられました!
今日の発表に間に合いそうです〜〜(><)
ありがとうございました!
回答日時 2007-11-20 08:30:29
名前
回答内容

回答を評価する
(0ポイント)
JAVA始めてでさっそく戸惑っていましたが、これを読んでわかりました!
助かりました!
回答日時 2008-02-14 05:48:50
名前
回答内容

回答を評価する
(0ポイント)
自分もQTのPATHになっていたので直して再起動で出来ました。
やっと次のステップに進める、、、
回答日時 2008-02-18 02:55:09
名前
回答内容

回答を評価する
(0ポイント)
>1
もし、Javaファイルにpackage を指定している場合は、javaコマンドは、一つ上のディレクトリをカレントにしてから、 java パッケージ名.クラス名 で実行します。
回答日時 2008-03-05 12:25:54
名前
回答内容

回答を評価する
(0ポイント)
javaでRuntimeを使用し、複数EXEファイルの実行を行っていますがうまくいきません。
実行するたびに何も実行されなかったり、1番初めだけ実行されたり・・・と処理が違います。
何が悪いのでしょうか。
よろしくお願いします。

try {
 Runtime rt = Runtime.getRuntime();

 rt.exec(command);
 rt.exec(command2);
 rt.exec(command3);

} catch (IOException ex) {
   ex.printStackTrace();        
}

※省略しましたが、上のcommand変数には、それぞれ別のexeパスがしていされています。
回答日時 2008-04-07 16:59:25
名前
回答内容

回答を評価する
(0ポイント)
僕も同じ現象が発生していたのですが、
コンパイルのときに、

javac ファイル名.java
java ファイル名.java

javac ファイル名.java
java ファイル名

で解決しました。
とても初歩的ミスで恥ずかしいorz
回答日時 2008-12-26 11:54:02
名前
回答内容

回答を評価する
(0ポイント)
>teikuriさん
>java ファイル名.java

java ファイル名.class
ならおkでしたよね?
回答日時 2008-12-26 14:34:27
名前
回答内容

回答を評価する
(0ポイント)
こんにちは、
JAVAの勉強を始めようとしてる者です。
 javacでCLASSファイルまでつくることができました。
java Hello の実行をすると・・

Exception in thread "main" java.lang.NoClassDefFoundError: Hello
Caused by: java.lang.ClassNotFoundException: Hello
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: Hello.  Program will exit.

 エラーになります、アドバイスよろしくお願いします
回答日時 2010-03-30 16:24:20
名前
回答内容

回答を評価する
(0ポイント)
yusukeさん
ここに書かれたことを全て試しましたか?
回答日時 2010-03-30 17:19:13
名前
回答内容

回答を評価する
(0ポイント)
本当に助かりました!
Java無理かと思いましたよ!
回答日時 2010-07-05 22:23:00
名前
$
回答内容

回答を評価する
(0ポイント)
検索で辿り着く人が多いんかな。
原因と対処がいろいろ出てる結果、解決に結びついてるのかねえ。

要するに、最初の頃に出くわす大抵のエラーは、ほとんど検索で解決できるだろうということだ。
回答日時 2010-07-06 08:48:19
名前
回答内容

回答を評価する
(0ポイント)
私もここでヒントをいただいて、このハードルを乗り越えました。
感謝感謝!

自分の場合、以下のようにPATH/CLASSPATHを書き直しまして、解
決しました。
[PATH]
C:\Program 
Files\Java\jdk1.6.0_21\bin;%SystemRoot%\system32;%SystemRoot
%;%SystemRoot%\System32\Wbem;%JAVA_HOME%\bin

[CLASSPATH]
.;C:\Program Files\Java\jdk1.6.0_21\lib\tools.jar

また、上記2つのパラメータは全部"ユーザー環境変数"に生成す
る。システム環境変数に同じものがあったら、削除する。
これでだめだったら、変更が反映されていない可能性が高いので、
PCを再起動して、再度Java ***を実施してみる.
回答日時 2010-08-02 18:53:57

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道