- ベストアンサー
JSPでclassのimport
教えてください。 JSPのプロジェクトで、自作のクラスを下記のようにimportしています。 import Util; しかし、次のようなエラーメッセージが表示されてしまい、うまくいきません。 > '.' がありません。 > import Util; > ^ Util.class というファイルは存在していて、その場所にはCLASSPATHが通っています。 その場所にフォルダをもう一つ作って、その中にUtil.classを移動し、次のように import test.Util; などとすると、認識自体はできたらしく次のようなメッセージに変わります。 > test.Util にアクセスできません。 > クラスファイル C:\xxx\classes\WspBean\Util.class は不正です。 > クラスファイル Util に不正なクラスがあります。 > 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 > import WspBean.Util; > ^ なので、CLASSPATH もとおっていると思うのですが・・ 何か原因らしきものや、ほかに調査できる方法などありますでしょうか? ヒントになるようなことでもいいので、教えていただけると幸いです。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
おそらく原因は、j2SE1.4 における非互換性が原因ではないでしょうか? 以下 j2se1.4 変更点抜粋 ---------------- コンパイラは、名前のないネームスペースから型をインポートする import 文を拒否するように なりました。以前のバージョンのコンパイラは、こうした import 宣言を、理論的には言語で許可 されていなくても (import 句に現れる型名がスコープ内に存在しないため)、 受け入れていまし た。仕様の中では、import 文の中に単純名を含めることはできないこと、また名前のないネー ムスペースからインポートを行うことはできないことが明示されています。 要約すると、次の構文は有効ではなくなりました。 import SimpleName; また、名前のないネームスペースからネストしたクラスをインポートする次の文も、有効ではなく なりました。 import ClassInUnnamedNamespace.Nested; コード内でこうした問題を修正するには、すべてのクラスを、名前のないネームスペースから名 前付きのネームスペースへ移動する必要があります。
その他の回答 (1)
クラスパスが通っている場所は? c:\xxx\classes?c:\xxx\classes\WspBean? Utilクラスが置かれているディレクトリは? Util.javaでpackageを指定していない状況ですか? それとも何か記述していますか? JSPファイル内でimport文はどのように記述していますか?
補足
回答ありがとうございます。早速、補足させていただきますね。 > クラスパスが通っている場所は? > c:\xxx\classes?c:\xxx\classes\WspBean? c:\program files\apache group\tomcat 4.1\webapps\xxx\xxx\xxx\classes になります。実際、Util.classもこのフォルダにあります。 ただ、それ以外にも ZIPファイルやらいろいろなものに CLASSPATH が通っています。 > Utilクラスが置かれているディレクトリは? 上記のとおりのフォルダです。 > Util.javaでpackageを指定していない状況ですか? > それとも何か記述していますか? 実は、Util.class自体は私自身が作ったわけではなく、.javaファイルもございません。ただ、その導入指示書には確かに上記のフォルダに格納しろと書いてあります。 > JSPファイル内でimport文はどのように記述していますか? <%@ page import="java.util.*,Util,WspBean.*,java.text.*,java.sql.*" %> といった具合です。二番目の Util のところで、エラーが発生しております。 何かヒントとなることでもかまいませんので、教えていただければ幸いです。
お礼
回答ありがとうございます。 まさにそのとおりで、バージョンを落としてみたらうまくいきました。 確かに導入指示書にも、JDK1.3xと書いてありました・・・ 新しいバージョンの方がよいかと思ったのですが、そうでもないこともあるんですね。とほほ・・ 大変助かりました、ありがとうございました!