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>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>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldD:\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: HelloWorldD:\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.htmlException 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(・・;もちろんブログの人もありがとうございます!!
http://www.javaroad.jp/bbs/answer.jsp?q_id=2005111613514712
回答日時 2006-04-17 01:06