• ベストアンサー

【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が入っているので、そのまま使ってます。) また、そうである場合、どのようにすれば上記のエラーは解消されるのでしょうか? 教えて下さい!

  • Java
  • 回答数3
  • ありがとう数4

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

  • ベストアンサー
  • 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

  • 外部クラスライブラリをインストールして使用する方法

    外部クラスライブラリをインストールして使用するためには・・・ C:\Program Files\Java\jdk1.6.0_37\jre\lib\ext と C:\Program Files\Java\jre6\lib\ext にjarファイルを置かないといけませんよね? それ以外にもなにか必要ですか? 教材を見ながらJavaの勉強をしているのですが 外部クラスライブラリを利用するプログラムをコンパイルしようとすると c:\JavaGOGO\Sample3-1>javac FusenExec.java エラー:C:\Program Files\Java\jdk1.6.0_37\jre\lib\ext\dodai.jar の読み込みエラー です。cannot read zip file FusenExec.java:3: シンボルを見つけられません。 シンボル: クラス Dodai 場所 : FusenExec の クラス Dodai fusen; ^ FusenExec.java:4: シンボルを見つけられません。 シンボル: クラス Dodai 場所 : FusenExec の クラス fusen = new Dodai(); ^ エラー 3 個 このようなメッセージが表示されエラーが起きます。 使おうとしているのはDodaiライブラリのクラスなのですが なにが原因でコンパイルエラーが起きるのでしょうか(>_<)

    • ベストアンサー
    • Java
  • Mac、Javaのライブラリ追加場所がわかりません

    Javaの参考書を見ながら勉強を始めたのですが、サンプルライブラリ「dodai.jar」を 「c:\ProgramFiles\Java\jdk1.6.0_01\jre\lib\ext」と 「c:\ProgramFiles\Java\jre1.6.0_01\lib\ext」に保存と書いてあります。 http://developer.apple.com/jp/qa/qa2001/qa1170.html を見るとMacでは 「~Library/java/Extensions/」配下に置くと説明されていました。 そこで、「dodai.jar」を「~Library/java/Extensions/」配下にコピーしましたが、 参考書の説明では2つのディレクトリにそれぞれコピーとなっています。 自分の理解で正しいのでしょうか? 宜しくお願いいたします。 ・現状の開発環境 MacOS10.6.8 java version 1.6.0_26 Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode) ・参考にしている参考書 「アプリ作成でやさしく身につく徹底入門 新基準Javaプログラミング」

    • ベストアンサー
    • Java
  • java  コンパイルできない

    os:WindowsXP pro jdkをインストールし メモ帳でsample.javaという名前の サンプルファイルを作り コマンドプロントで javac sample.javaと入力し コンパイルしたのですが エラー:sample.javaが読み込めません エラー 1個 と出力され、コンパイルできませんでした。 過去ログを拝見したところ、 フォルダオプションの設定で、拡張子を表示し javaファイルか確認をする ということでしたので、拡張子の表示をし、 javaのソースファイルであることは確認しました。 ただ、画面に表示されているファイルはJ#になっています。 visualbasicをインストールしているため、 javaファイルはJ#になってしまうようです。 環境変数のpathはC:\Program Files\Java\jdk1.5.0\binに設定しました。 コンパイルできるようにするために どうかご教授していただければ幸いです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • mac(osX)で、Javaはどこにインストールされている?

    今Javaの参考書を買ってきたのですが、 サンプルライブラリを 「c:\ProgramFiles\Java\jdk1.6.0_01\jre\lib\ext」と 「c:\ProgramFiles\Java\jre1.6.0_01\lib\ext」に保存と書いてあります。 osXでは標準でjavaが入っていたのですが、もともとそのjavaがどこにインストールされているのかが分かりません。 macではProgramFilesというフォルダも無いので、辿りようが無いな~と困っています。 上記のフォルダがどこにあるのか、分かる方教えてください!

    • ベストアンサー
    • Java
  • javaコンパイルバッチ

    javaコンパイル用のバッチファイルを作成しようと思ってますがうまくいきません。どなたかご教授お願いします。 環境 windowsXP java j2sdk1.4.2_16 バッチファイル名 jc.bat 作成したバッチファイルの中身 set PATH=.;C:\JAVA\j2sdk1.4.2_16\bin;C:\JAVA\j2sdk1.4.2_16\jre\bin;C:\JAVA\j2sdk1.4.2_16\lib set CLASSPATH=.;C:\JAVA\j2sdkee1.3.1\lib\j2ee.jar;C:\JAVAsrc javac 実行 C:\JAVAsrc> jc testServlet.java これで作ってみたのですが動きません、実行してみると どうやらjacacの実行結果(使用方法の説明)がでてきました ただ、バッチファイルの最後にjavac testServlet.javaと入れて C:\JAVAsrc> jc 実行してみると、コンパイルができてるのです。 どなたか、原因はわかりますか? それと環境変数は通ってました。 javacの後のtestServlet.javaが認識されてないみたいです

  • .javaのファイルがコンパイルできない

    .javaファイルをコンパイルしようと思いデスクトップ上にファイルを置きコマンドプロンプトでjavacコマンドを使用したところ Sample016.java:3: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.HttpServlet; Sample016.java:15: シンボルを見つけられません。 などのエラーが出てしまいます。 どのような解決方法があるのでしょうか。 また、この問題の解決にjavaのファイルに入っていたsrc.zipは関係あるのでしょうか? src.zipを解凍したところjavaxなどが入っていたため何かに使うののだろうかと思ったのですが もうひとつ質問があるのですが、もしコンパイルすることができtomcatを使って動作を確認する時はROOT以下に.javaと.classを置いてjavaの方を呼び出せばいいのでしょうか? 急いで書いてしまったのでわかりにくいかもしれませんが、わかるかたいらっしゃいましたらよろしくお願いします。

  • servletのコンパイルエラーについて

    Apache Tomcat 5.5.12にてサンプルプログラムHelloWorld .javaをコンパイルするとエラーが出てしまいます。 HelloWorldServlet.java HelloWorldServlet.java:2: ';' がありません。 import javax.servlet-api.*; ^ CLASSPATHなどの設定も一通りサイトを参照して設定してみました。 CLASSPATH .;C:\Program Files\Java\jdk1.5.0_07\lib\tools.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar CATALINA_HOME C:\Program Files\Apache Software Foundation\Tomcat 5.5 PATH C:\Program Files\Java\jdk1.5.0_07\bin JAVA_HOME C:\Program Files\Java\jdk1.5.0_07 JAVA初心者なので調べてみましたが解決にはいたりませんでした。 よろしかったらご教授のほどよろしくお願い致します。

    • ベストアンサー
    • Java
  • Fedora Core5にJavaを入れましたがコンパイル出来ません。

    Lnux初心者です。Fedora Core5にJavaを入れましたがコンパイル出来ません。 Javaのバージョンはj2sdk1.4.2_12とjdk1.5.0_08です。インストール確認も出来Pathには/home/****の.bash_profileにJAVA_HOME=/usr/java/j2sdk1.4.0_12 PATH=$PATH:$JAVA_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/tools.jar export JAVA_HOME PATH CLASSPATH を追加しましたがコンパイル時にbash: javac: command not found と言うエラー表示がでます。どうにかLinuxでJavaをと考えているのですが、先に進めず困っています。Pathの通しかたがダメなのかどうかも判りません。どうかよろしくお願いします。

  • javaのコンパイルについて

    java初心者なのですがコンパイルができません! コマンドプロンプトでjavac Hello.javaと入力すると、内部コマンドまたは外部コマンド、操作可能なプログラムまたはパッチファイルとして認識させていません、とでてきて実行できません。 環境変数でパスの設定をしてたのですが何回も見直しても間違ってないのに、コマンドプロンプトで  [Path]\javac.exe-help  と入力すると指定されたパスは見つかりませんと出てきます。 ちなみに環境変数のところには行末に、 ;C:\Program Files\Java\jdk1.6.0_07\bin と入力しました。 何が問題なのでしょうか??ちなみに,version 6 update 7 です。 わかる方是非返答お願いします!!

  • コマンドプロンプトでのJava実行エラー

    コマンドプロンプトでJavaコマンドを実行(RunTest.class)を実行すると「Exception in thread"main" java.lang.UnsupportedClassVersionError: RunTest : Unsupported major.minor version 51.0」 というエラーが出てしまいます。 他のページ調べてみるとJDKとJREのバージョンが違うと発生するようなので確認してみると JDK1.7.0_09とJRE7でした。 このエラーが発生しないようにするにはどうすれば良いでしょうか? 宜しくお願いいたします。

    • ベストアンサー
    • Java

専門家に質問してみよう