JAVAのバージョンうぜぇ

javaをいっぱい入れたんです。コンパイルできない。
ティクショー!
こういうのが自分の環境でも起こった。

CHAI
題名 実行時のNoClassDefFoundErrorについて
質問内容
こんにちわ。お世話になります。
全く初めて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
名前
mio
回答内容
コンパイル時にクラスのありかを指定しても、実行時にも指定してあげなければ、見つけることができません。
回答日時 2005-11-16 14:15
名前
CHAI
回答内容
早速のご回答ありがとうございます。

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
名前
hiro
回答内容
該当のエラーメッセージは、"HelloWorldクラスはサポートされていないクラスバージョンです。"といっています。
これはjavacとjavaのバージョンが異なるときに起こるエラーだと思われます。
javac -J-version (コンパイラのバージョン)
java -version (javaのバージョン)
コマンドプロンプトでそれぞれ入力しバージョンを確認してください。
回答日時 2005-11-16 16:02
名前
CHAI
回答内容
お世話になります。
お返事が遅くなって申し訳ありません。

あれから色々と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
名前
mio
回答内容
_05であれば、最新なのでそれ以上のパッチはないです。
…で、動きましたか?
回答日時 2005-11-22 12:59
名前
CHAI
回答内容
お疲れ様です。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
名前
mio
回答内容
すでにできている*.classを削除してみてください。
回答日時 2005-11-23 09:40
名前
CHAI
回答内容
こんにちわ。
お世話になります。

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

2005/11/24 13:37

.
2005/11/24 13:37 ..
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
名前
hiro
回答内容
javaとjavacのバージョンは同じになっているんですよね?
回答日時 2005-11-24 15:12
名前
英次
回答内容
初めまして。
現在、同じエラーが出て悩んでいるので書き込みします。

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
名前
hiro
回答内容
上記のエラーはコンパイル環境(javac)と実行環境(java)の違いにより出力されるメッセージです。バージョンを同じにする(再インストール)して再挑戦してください。
同一バージョンになれば出来ると思うのですが。
私はそのエラーになった事がないので実体験ではないです。
回答日時 2005-11-24 16:00
名前
英次
回答内容
私は解決しました。
ご指摘の通り、コンパイル環境と実行環境が違いました。

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

よってpathを指定しました。
バージョンを調べる方法(-version)を教えていただいたから
解決できました。
アドバイスありがとうございました。
回答日時 2005-11-24 16:31
名前
mio
回答内容
環境変数pathが、
.;...jre...;jdk....
となっていると思います。実行時にはjre...でjavaが見つかるのでこちらが使われ、コンパイル時はjre...で見つからずにjdk...が使われています。
jre...を削除してください。
回答日時 2005-11-24 17:34
名前
mio
回答内容
1.4だと...jre...でなく、...j2re...でした。
回答日時 2005-11-24 17:35
名前
CHAI
回答内容
お久しぶりです。こんにちわ。
(実作業で時間を取られ、返事が遅くなってしまいました。申し訳ありません)

再インストールを行い、今まで教わった以下の手順で、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
名前
CHAI
回答内容
こんにちわ。度々の書込みですみません。

「システム環境変数: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
名前
mio
回答内容
返信に気づいてませんでした。
そのパスは、oracle本体ではないです。
問題はないはずです。
回答日時 2005-12-11 10:01
名前
hoge
回答内容
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
名前
RYI
回答内容
同じ現象でくるしみましたが、
僕の場合はQuickTimeが原因でした。
参考までに・・・
http://blog.livedoor.jp/livedoor_namu/archives/50288352.html
回答日時 2006-04-07 02:10
名前
SEI
回答内容
>RYI
たすかりました〜。
回答日時 2006-04-12 10:53
名前
通りすがり
回答内容
>RYI
ありがとうございます。

ここの↓中の人もありがとうございます。
http://blog.livedoor.jp/livedoor_namu/archives/50288352.html
回答日時 2006-04-13 23:54
名前
FOF
回答内容
>RYI
ほんとありがとうございます。
この記事なかったら解決できなかったと思います f(・・;

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

http://www.javaroad.jp/bbs/answer.jsp?q_id=2005111613514712