- - PR -
Javaのクラスファイルエラー
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-05-15 09:32
初めて書き込みをさせていただきます。
昨日一日中検討し、ググッていたのですが解決方法が見つからなかったため質問させていただきます。 未熟なため説明が下手になっていると思いますが、どうかお付き合いいただきたいと思います。 現在JSPファイルプログラムを実行した際にエラーがおきております。 実行JSP(Test_jsp)内でSample.javaを参照しています。 【エラーログ】 2007/05/14 21:04:56 org.apache.jasper.compiler.Compiler generateClass 致命的: Error compiling file: /C:/Documents and settings/sato/workspace/fkanri/work//org/apache/jsp\ac_jsp.java [javac] Compiling 1 source file C:\Documents and Settings\sato\workspace\fkanri\work\org\apache\jsp\ac_jsp.java:73: common.Sample にアクセスできません。 クラスファイル C:\Documents and Settings\sato\workspace\fkanri\WEB-INF\classes\common\Sample.class は不正です。 クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 Sample sample = new Sample(); ^ 【環境】 eclipse:3.0.2 Java:j2sdk1.4.2_12 Tomcat:5.0.28 【コンパイル環境と実行環境】 $javac -J-version java version "1.4.2_12" $javac -version java version "1.4.2_12" 【eclipseの設定】 インストール済みのJREはj2sdk1.4.2_12のみ表示され選択されている コンパイラーのJDK準拠は全て1.4が選択されている TomcatのVM設定はj2sdk1.4.2_12 【クラスパスの設定】 CLASSPATH ;.;%JAVA_HOME%\Lib\dt.jar;%JAVA_HOME%\Lib\tools.jar JAVA_HOME C:\j2sdk1.4.2_12 Path %JAVA_HOME%\bin; 【その他】 TOMCATのインストール時に指定したJavaもj2sdk1.4.2_12です。 現在の開発環境を整える前に、違う開発環境を使用していました(eclipsev3.2、Javav1.5)。 始めにeclipsev3.0&Tomcatをインストールした際にはjavav1.5がコンパイル環境だったと思います。 eclipse上からjre、コンパイラーの準拠、TomcatのVM設定を切り替えていました。 ですがどうしても上記のエラーが出るので、Javav1.5をアンインストールし、eclipse及びTomcatをインストールしなおしました。 その際にパスも上記のように変更しました。 その上で既存のクラスファイルは全て削除した後にコンパイル(プロジェクトのクリーン)しなおしました。 その後にTomcatをeclipseから起動し、webブラウザでJSPを実行しました。 その際に上記のエラーが出てしまいました。 ※先ほどさらに以下のエラーもでました javax.servlet.ServletException: org/apache/jsp/Test_jsp (Unsupported major.minor version 49.0) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:244) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) Javaのバージョン違いが原因のようなエラーだと思うのですが、どうしてそのようになるのがわかりません。 設定ではバージョンの違いはないように思えます。 かなり行き詰ってしまい、打つ手が思いつきませんのでどなたかお気付きの点がありましたらご指摘いただきたいと思います。 宜しくお願いします。 |
|
投稿日時: 2007-05-15 10:08
「クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです」
で検索してみた。@IT内の記事がヒットした。とりあえず読んでみたら? http://www.atmarkit.co.jp/fjava/rensai3/code_debug08/debug08.html |
|
投稿日時: 2007-05-15 10:19
>「クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです」
>で検索してみた。@IT内の記事がヒットした。とりあえず読んでみたら? >http://www.atmarkit.co.jp/fjava/rensai3/code_debug08/debug08.html ご回答ありがとうございます。 上記記事は昨日拝見いたしました。 よって全てのクラスファイルを削除した後、現在の設定環境で再度全ファイルをコンパイルしています。 よって現在のコンパイル環境がv1.4であれば問題ないと思うのですが、v1.5でコンパイルされているようなエラーでした。 ちなみにjavacオプションで-targetや-sourceをv1.4に指定しても同様のエラーが出ました。 ですが、そのような設定になっていないようなので困っています。 他に何かお気づきの点がありましたら宜しくお願いします。 |
|
投稿日時: 2007-05-15 10:52
-source 1.4 -target 1.4 と指定していればクラスバージョン 48 のクラスファイルが生成されているはずです。
javap で確認していましょう。 $ javap -v -classpath . Test Compiled from "Test.java" class Test extends java.lang.Object SourceFile: "Test.java" minor version: 0 major version: 49 Constant pool: |
|
投稿日時: 2007-05-15 14:28
今まで席をはずしていたためお返事が遅くなり申し訳ございませんでした。
今試しにworkspaceの場所を変えて、ファイルをそのままコピー試してみたところうまくプログラムが動きました。 根本的な原因解明はできていませんが、eclipseの過去の設定がなぜか消えていなかったようです。 workspaceの場所を変えることで新しい設定になりうまくいったようです。 お騒がせして大変申し訳ございませんでした。 >-source 1.4 -target 1.4 と指定していればクラスバージョン 48 のクラスファイルが>生成されているはずです。 >javap で確認していましょう。 上記方法でよく原因等を今後検討したいと思います。 ご指摘ありがとうございました。 行き詰っていたのですぐにレスポンスをいただけて大変心強かったです。 本当にありがとうございました。 |
|
投稿日時: 2007-05-15 20:23
エクリプスでJAVAのバージョン設定変更わすれか
|
|
投稿日時: 2007-05-15 21:03
>エクリプスでJAVAのバージョン設定変更わすれか
ご返答ありがとうございます。 上記(再度下記)に記載したeclipseの設定以外でも設定するところがあるのでしょうか? eclipse関係の書籍を調べていましたが私のほうでは確認できませんでした。。。 ↓ 【eclipseの設定】 インストール済みのJREはj2sdk1.4.2_12のみ表示され選択されている コンパイラーのJDK準拠は全て1.4が選択されている TomcatのVM設定はj2sdk1.4.2_12 |
|
投稿日時: 2007-05-15 21:45
JSPのコンパイルならEclipseじゃないと思うんですが。
catalina.batの中でJAVA_HOMEを指定してるとか。 って良く見ないで書いたら、jsp自体は大丈夫なのですね。失礼しました。 [ メッセージ編集済み 編集者: mio 編集日時 2007-05-15 21:48 ] |