• ベストアンサー

【javaコンパイル時のエラーに関して】 「クラスファイルの不正」というエラー

今macでJavaの勉強をしています。 ただ、コンパイル時に下記のようなエラーが出てしまうので、解決方法を教えて下さい! ---------------------------- javac sample.java というコマンドを打つと、 ↓↓↓↓↓ sample.java:21: Dodai にアクセスできません。 クラスファイル /Library/Java/Extensions/dodai.jar(Dodai.class) は不正です。 クラスファイルのバージョン 50.0 は不正です。49.0 であるべきです。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 Dodai fusen01 = new Dodai(); ^ エラー 1 個 ---------------------------- というエラーになります。 dodai.jarというのは、本に付いていたサンプルのjarファイルで、 保存場所は 「c:\ProgramFiles\Java\jdk1.6.0_01\jre\lib\ext」と 「c:\ProgramFiles\Java\jre1.6.0_01\lib\ext」に保存するよう書かれてました。 (私のPCがmacなので、/Library/Java/Extensions/に保存してます。) また、本の解説では「JDK6u1」をインストールするように書かれてました。 エラーの原因はjavaのバージョンが違うのかな?と思い、このサイトを参考にして javac -J-version というコマンドを打ってみたところ、 ---------- java version "1.5.0_07" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-164 ---------- というメッセージが流れ、また、 java -version というコマンドも打ってみたところ、上記と同じメッセージが流れました。 これはやはり、サンプルのdodai.jarファイルのバージョンが1.6であるのに、 私のPCのjavaのバージョンが1.5だからエラーが出ているという事でしょうか?(macではデフォルトでjavaが入っているので、そのまま使ってます。) また、そうである場合、どのようにすれば上記のエラーは解消されるのでしょうか? 教えて下さい!

質問者が選んだベストアンサー

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

ご想像の通りバージョン不整合が原因です。 対策としてはJDK6 update1以上をインストールしてください。 コンパイラの方が新しければ問題は起きません。

hakase-chan
質問者

補足

ご回答ありがとうございます! ちなみに、JDK6 update1をインストールする際に、既にインストールされているものを アンインストールする作業は必要ですか? また、macにJDK6 update1をインストールする方法をご存知でしたら教えていただけると。。 宜しくお願い致します、、、。

その他の回答 (2)

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.3

古いバージョンを削除しなくても通常はその分のディスクを無駄に消費する以上の不都合はないですけど、古いバージョンも使おうとするなら設定が面倒かもしれません。新しくインストールしたもので環境変数などが上書きされていますので、古いバージョンを正しく動かすには起動時に環境変数を書き換えるなどしなければいけないと思います。 Mac用JDK6はまだないんですね。ライブラリのソースコードがあったとしても旧バージョンでコンパイルできるようになっている保証はないので、ブートキャンプを使う方が正解でしょう。

noname#49664
noname#49664
回答No.2

Mac OS X用のJDK 6は、まだリリースされていません。 どうしてもというなら、FreeBSD用のJDK 6をMac OS Xに移植するプロジェクトが進められていますので、そちらを試してみるという手はあります。ただし、まだ試験段階ですのでおススメはできませんが。 http://landonf.bikemonkey.org/ もし、そのjarのソースコードがあるなら、そこからJDK 5で再コンパイルしてjarを作り直したほうが早いかと思います。

参考URL:
http://landonf.bikemonkey.org/
hakase-chan
質問者

お礼

ご丁寧にどうもありがとうございます! >Mac OS X用のJDK 6は、まだリリースされていません。 なるほど、そういう事だったんですね。 新し目のmacでしたので、なぜ1.5なのか不思議に思ってました。 残念ながらソースコードは配布されておらず、また、購入した本が 基本的にそのjarファイルを使って進んでいくものですので、 ブートキャンプでXPを入れてJavaを進めていきたいと思います。 macでJavaは何かと面倒のような気もしますので。。。 ありがとうございました!!

関連するQ&A

専門家に質問してみよう