アプリ版:「スタンプのみでお礼する」機能のリリースについて

過去に開発したWebアプリをEclipseを使用して再開発し直してみようと挑戦中ですが、以下のエラーが解決できず困っています。
*****
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
JSPファイル: null の中の行: -1でエラーが発生しました
生成されたサーブレットのエラーです:
[javac] Compiling 1 source file
E:\AddProgram\Eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Standalone\localhost\XXX\login_jsp.java:10: java.lang.Object にアクセスできません。
クラスファイル E:\AddProgram\Eclipse\eclipse\jre\lib\rt.jar(java/lang/Object.class) は不正です。
クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです。
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
public class login_jsp extends HttpJspBase {
^
エラー 1 個
*****
Javaビルドパス-クラスパス変数は j2sdk1.4.2\jre\lib\rt.jarになっているし、
Javaコンパイラーの準拠レベルは1.4になっているし、
JAVA_HOMEやPATHもj2sdk1.4.2、j2sdk1.4.2\binになっているんですが、何故別のjarを参照してしまっているのでしょうか?

Eclipseの再起動、JRE1.4.2の再インストールなども試みましたが、解決せず悩んでいます。解決方法をご存知の方、ご教授ください。

■環境(最終的に落ち着いた使用バージョンは以下の通り。)
・EclipsePleiadesAllinOneJava3_4_2
・java 1.4.2
・Tomcat 4.1.31
・Apache 2.0.53
・MySQL 4.0.25

A 回答 (2件)

やっぱり、EclipseにJREがあるようですね。

これが原因ではないでしょうか。Eclipseは、同じフォルダ内にJREがあると、デフォルトのJREではなくそちらを使って起動しますので、それで1.4が使われずクラスライブラリのバージョン問題が発生しているのではないでしょうか。

EclipseのJREを他の場所に移動して起動したらどうでしょうか。それでダメなら、JREなしのものをいれて試してみるのがよいかと思います。
    • good
    • 1
この回答へのお礼

結局、JREをリネーム、移動しても、コンパイラーを1.5や1.6にしても(Tomcatもバージョン変更)解決せず、JREなしのEclipseをDL、インストールしました。ところが、いろいろ調べていく中で、Eclipse3.4.2はJRE1.5以上じゃないと動作しないことが判明し、最終的には、再度JRE付Eclipseを別サイトからDL、インストールし、初めからやり直しました。
最終的にはJRE1.5、Tomcat5.5で正常に過去に開発したWebアプリが動作しました。
いろいろアドバイスありがとうございました!
コーディングで悩むのは楽しいものですが、環境設定でつまずくのは中々辛いものですね・・・(^^;

お礼日時:2011/04/22 21:07

JREでver.5(1.5)のものがどこかにインストールされていませんか? コンパイル時に、このクラスライブラリを見に行っているために「クラスファイルのバージョン 49.0 は不正です」と出てくるのだと思います。

つまり、jdk 1.4から、jre 5(1.5)のクラスを利用しようとして「それは使えない」といわれているのでしょう。

どうしてもそのバージョンのJDK+Tomcatでないといけない理由があるのでしょうか。個人的には、おそらく過去に開発したものも基本的には最新のJDKで動くはずですので、JDKとTomcatを最新版にして改めて開発するほうがよいようにも思います。

どうしてもバージョンアップは出来ないということになると、どこでver.5のクラスライブラリが呼ばれることになっているのかわからないのですが、JRE 5.xがあればアンインストールして、最新が1.4台となるようにして確認してみるしかないかも知れません。

あるいは、今気が付きましたが、EclipsePleiadesAllinOneJava3_4_2がJREが付きで、これに入っているJREがver.5ってことはないですか? AllinOneパッケージは、その中に用意されているJREで動きますので、プラットフォームにどのJREがあろうが関係ないです。JREなしのものを使っているでしょうか? そのへんも確認してみてはいかがでしょうか。

この回答への補足

早速の回答ありがとうございます!
JREのバージョンにこだわっているわけではありません。(過去に開発した時には、ApacheやTomcatやMySQLなどのバージョンの組み合わせでうまく動作しないことがありましたが、JREは特に問題ないと考えています。)

現状、jreの導入状態は以下の通りで、
*****
Eclipse\eclipse\jre java version "1.6.0_13"
Eclipse\jre1.4 java version "1.4.2_19"
Eclipse\jre1.5 java version "1.5.0_18"
Eclipse\jre1.6 java version "1.6.0_13"

C:\MyPGM\j2sdk1.4.2 java version "1.4.2"
*****
コマンドプロンプトで確認すると java version "1.5.0_06" と出るので、どこかでパスが通ってるようなんですが、環境変数(システム、ユーザ)の%PATH%にも%CLASSPATH%にも通ってないし、1.5をアンインストールしようにも、スタートメニューやコントロールパネルのアプリの削除でも出てこないため、1.5のアンインストールもできません。(jre1.5のフォルダの中にもアンインストーラがない。。)
Eclipseごとアンインストールして、JREなしのEclipseを再インストールするしか方法はないのでしょうか?

補足日時:2011/04/20 21:07
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました!

お礼日時:2011/04/25 19:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています