• ベストアンサー

コンパイルできない

こんにちは いつもお世話になっています。 %CATALINA_HOME%/webapps/test/WEB-INF/classesにある TestController.javaをコンパイルしたいのですが 以下のようなエラーメッセージが出ます。 TestController.java:1: パッケージ dbpackage は存在しません。 import dbpackage.dbmodel; ^ どうすればTestControllerファイルをコンパイルできるのでしょうか? 最近質問ばかりでごめんなさい。 ちょっと切羽詰っています。 ご回答よろしくお願いします。 ちなみに「%CATALINA_HOME%」とはTOMCATをインストールしたディレクトリ,「dbpackage」とは%CATALINA_HOME%/webapps/test\WEB-INF\classesに あるフォルダでその中にはdbmodel.classというファイルが保存されています。 ==============TestController.java=============================== import dbpackage.dbmodel; public class TestController { public void TestController() { } }

  • Java
  • 回答数5
  • ありがとう数1

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

  • ベストアンサー
  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.4

#2です。 >dbpackageフォルダ両方間違いなく設定しました。 ん? クラスパスの設定はdbpackageの上のフォルダーですよ。 言い方が違うだけかもしれませんが、一応確認です。

19746999
質問者

補足

>クラスパスの設定はdbpackageの上のフォルダーですよ。 失礼しました。説明不足でした。 カレントディレクトリがdbpackageの上のフォルダーになっております。 なのでコンパイルできるはずなのですが。。。

その他の回答 (4)

回答No.5

カレントフォルダもしくはdbpackageのフォルダの中に dbmodel.java(ソースファイル)が存在しませんか? クラスパスの通っている場所にソースファイルが 存在したときにそんなエラーが出たようなきがします。 ソースファイルを別の場所に移動させると 上手くいくのではないでしょうか?

19746999
質問者

お礼

tomom1111さん、こんにちは。 御礼が遅くなって申し訳ございません。 先日、ようやく自分で解決することができました。 解決方法は、dbmodel.javaをコンパイルした後に %CATALINA_HOME%/webapps/test\WEB-INF\classes にdbmodel.javaをコンパイルしたdbmodel.classをコピペした後に TestController.javaをコンパイルすると成功しました。  なぜそうすると成功するのかは今もわかりません。 いろいろ試した結果、偶然成功しました。 >クラスパスの通っている場所にソースファイルが 存在したときにそんなエラーが出たようなきがします。 そのようなこともあるのですね。 今後何かトラブルが起きたときに参考にさせていただきます。

noname#45950
noname#45950
回答No.3

>public void TestController() >{ >} これ、コンストラクタでしょうか? だったら、"void"は不要だと思いますが。

参考URL:
http://www.nextindex.net/java/constructor.html
  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.2

次の2点を確認して下さい。 1.パッケージ名の記述は合っているか 2.そのパッケージはクラスパスに通っているか

19746999
質問者

補足

ngsvxさん、こんにちは。 はい、パッケージ名は何度も確認しました。 クラスパスはカレントディレクトリと dbpackageフォルダ両方間違いなく設定しました。 よろしくお願いいたします。

  • mocajaba
  • ベストアンサー率20% (1/5)
回答No.1

dbmodelというソースは、パッケージ宣言をしていますか? package dbpackage; っていうやつです。

19746999
質問者

補足

mocajabaさん、こんにちは。 はいソースの先頭にパッケージ宣言しております。 よろしくお願いします。

関連するQ&A

  • GUIでコンパイルと配置ができるフリーソフトありますか?

    Servletの場合、コンパイル後にできあがったクラスファイルを、Tomcat等の...\WEB-INF\classes\ ディレクトリ以下に配置しなければなりませんが、 毎回、↓ javac -d %TOMCAT_HOME%webapps\test\WEB-INF\classes XXX.java のようにするのが面倒です。GUIでファイルを選択するだけでコンパイルから配置まで行ってくれるフリーソフトはありますか? ・batchファイル ・Ant も検討してみましたが、batchファイルはよくわからず、Antはディレクトリ単位では、コンパイル->配置までできましたが、ファイル単位で行う方法がわからず、タイムスタンプが同一でもコンパイルしてしまうようで、あまりメリットが感じられませんでした。 環境は、WindowsXPで、エディタは秀丸使用しています よろしくお願いします。

    • ベストアンサー
    • Java
  • servlet (resin) について

    tomcatとresinって、そんなに違うのですか? resinでプログラムを動かしたいのですが、動いてくれません… tomcatの場合、webappsの下に自分の好きなディレクトリを作れば(test)その中のWEB-INF/classes にクラスファイル(TEST.class)を置けば、  http://localhost:8080/test/servlet/TEST で動きますが、resinも同じようにしようと思って、test/WEB-INF/classes/の下にTEST.java を置いて(コンパイルしてくれると聞いたのでJAVAファイルを置きました) http://localhost:8080/test/servlet/TEST を見ても、/test/servlet/TEST was not found on this server. と怒られました… どうすればいいのでしょう??

  • Strutsのコンパイル

    いろいろなサイト、もちろん、過去ログを見たのですが、どうしてもコンパイル出来ないので教えてください・・・。 環境:win2k Pro Tomcat 4.1.27 j2sdk1.4.1_03 です。 そこで、Strutsのコンパイルの設定としまして、   変数            値 CATALINA_HOME  C:\Program Files\Apache Group\Tomcat 4.1.27 STRUTS_HOME   C:\struts\jakarta-struts-1.1 path           略・・System32\Wbem;c:\j2sdk1.4.1_03\bin CLASSPATH    .;%CATALINA_HOME%\common\lib\servlet.jar;%STRUTS_HOME%              \bin\struts.jar そして、 C:\Program Files\Apache Group\Tomcat 4.1.27\webapps\test\WEB-INF\classes>javac test.java としたら、 import org.apache.struts.action.*; ^ 以下省略・・ と出てしまいます。 何度も、見直したり、綴りの間違いがないか見たのですが、解決できません。 どうか、ご教授お願いします。

  • サーブレットでコンパイルがうまくいきません。

    質問させて下さい。サーブレットでコンパイルがうまくいきません。 どうか教えて下さい。 エラーはこのとおりです。ディレクトリはC:\Program Files\Tomcat5\webapps\entry\WEB-INF 実行しました。 c:\>set classpath CLASSPATH=C:\Program Files\Tomcat5\common\lib\servlet-api.jar c:\>cd C:\Program Files\Tomcat5\webapps\entry\WEB-INF C:\Program Files\Tomcat5\webapps\entry\WEB-INF>javac src/HelloServlet.java -d classes エラー: src/HelloServlet.java を読み込めません。 エラー 1 個

  • 【サーブレットのコンパイルエラーが解決できません】

    Servleteのコンパイルエラーについてご教授下さい。 protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { がソースなのですが、コンパイルすると SearchServlet.java:12: シンボルを解決できません。 シンボル: クラス IOException 場所 : SearchServlet の クラス throws ServletException, IOException { エラー 1 個 とIOExceptionの下に^がついて表示されます。 CLASSPATHも %CATALINA_HOME%\webapps\wl_jsp\WEB-INF\classes %JAVA_HOME%\lib\tools.jar %CATALINA_HOME%\common\lib\servlet-api.jar と設定してあり本やネットで調べたのですが解決できませんでした。 教えて下さい!お願い致します。

    • ベストアンサー
    • Java
  • サーブレットのコンパイルについて

    はじめまして。 学校の課題の方でJSP/サーブレットをやっているのですが、サーブレットのコンパイルが通りません。 プログラムとエラーと環境変数は以下の通りです。 【プログラム】 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException { printWriter out = response.getWriter(); out.println("hello"); } } 【エラー】 HelloServlet.java:2: パッケージ javax.servlet は存在しません。 import javax.servlet.*; ^ HelloServlet.java:3: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.*; ^ HelloServlet.java:5: シンボルを解決できません。 シンボル: クラス HttpServlet 場所 : HelloServlet の クラス public class HelloServlet extends HttpServlet ^ HelloServlet.java:7: シンボルを解決できません。 シンボル: クラス HttpServletRequest 場所 : HelloServlet の クラス public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException ^ HelloServlet.java:7: シンボルを解決できません。 シンボル: クラス HttpServletResponse 場所 : HelloServlet の クラス public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException ^ HelloServlet.java:7: シンボルを解決できません。 シンボル: クラス ServletException 場所 : HelloServlet の クラス public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException ^ HelloServlet.java:9: シンボルを解決できません。 シンボル: クラス printWriter 場所 : HelloServlet の クラス printWriter out = response.getWriter(); 【環境変数】 CATALINA_HOME C:\servletbook\apache-tomcat CLASSPATH %CATALINA_HOME%\common\lib\jsp-api.jar;%CATALINA_HOME%\webapps\atmarkit\WEB-INF\classes;%CATALINA_HOME%\common\lib\servlet-jsp.jar; よろしくお願いします。

  • servlet でコンパイルエラー

    tomcat5.0.27 でservletの開発をしようとしています。 javac NodeBean.java を実行すると --- NodeBean.java:15: パッケージ common は存在しません。 import common.WingsUtil; ^ NodeBean.java:183: シンボルを解決できません。 シンボル: 変数 WingsUtil 場所 : ip.NodeBean の クラス objSql.append("ip_node." + param[i] + "= '" + WingsUtil.sqlEscape(value[i]) + "' "); ^ ---- webapps\ip\WEB-INF\classes\common と webapps\ip\WEB-INF\classes\ip という構造です。 ちなみにサンプル等は正常にコンパイルできます。 javac -classpath "fullpath\common" NodeBean.java としても同じエラーがでます。

  • クラスファイルの配置について

    初めまして。 質問したいことがあります。 私の環境は OS:RedHatLinux7.2 JDK:1.3.0_02 Tomcat:ver3.2.4 です。 servletの動作について (1)tomcat/WEB-INF/test/classes/hello.class ("HelloWorld"という文字列を表示するクラス)で  アドレス→http://localhost:8080/test/servlet/helloと入力すると正常に動 作しました。 次に (2)tomcat/WEB-INF/test/classes/sample/hello.class ("HelloWorld"という文字列を表示するクラス)で  アドレス→http://localhost:8080/test/servlet/sample/helloと入力すると Error 500 Internal Servlet Errorというエラーが発生しました。 server.xmlには <Context path="/test"    docBase="webapps/test"    crossContext="false"    debug="0"    reloadable="true" > </Context> を追加しているだけなのですが、Tomcatではクラスファイルは絶対にclassesディレクトリの直下に配置しなければならないのでしょうか? (2)のclasses-sample-hello.classというように、classesディレクトリとクラスファイルの間にディレクトリが存在すると駄目なのでしょうか? もし何かわかることがありましたらご教授御願い致します。

    • ベストアンサー
    • Java
  • JSPにおけるimportのパス?

    =========================== ■jakarta-tomcat-3.2.4 |_■webapps   |_■login     |_■bookmark     | |_□list.jsp ← 其の2     | |_■Web-inf     |   |_■classes     |   |_■atmakit     |     |_□MyDBAccess.class ← 其の3     |     |_□MyUtil.class ← 其の4     |_■Web-inf       |_■classes         |_□Servlet.class ← 其の1 =========================== 上記のようなディレクトリ構造のwebアプリケーションを作成中です。 其の1(Servlet.class)から其の2(list.jsp)を呼び出し、 その中で其の3(MyDBAccess.class)と其の4(MyUtil.class)をimportしたいのですが、 その場合の其の2(list.jsp)でのimportのパスはどのように指定したら良いのでしょうか? そもそもそんなこと可能なのでしょうか? 現在 import="java.sql.* ,atmarkit.MyDBAccess ,atmarkit.MyUtil" としてありますが、 ----------------------- org.apache.jasper.JasperException: Unable to compile class for JSPE:\jakarta-tomcat-3.2.4\work\localhost_8080%2Flogin\_0002fbookmark_0002flist_0002ejsplist_jsp_0.java:16: クラス atmarkit.MyDBAccess が import に見つかりません。 import atmarkit.MyDBAccess ; ^ E:\jakarta-tomcat-3.2.4\work\localhost_8080%2Flogin\_0002fbookmark_0002flist_0002ejsplist_jsp_0.java:17: クラス atmarkit.MyUtil が import に見つかりません。 import atmarkit.MyUtil; ^ ----------------------- というエラーが発生します。 これだけでは分からないかも知れませんが、必要な情報があれば仰ってください。 分かりにくい質問で申し訳ないですが、どなたかご教授下さい。

  • 全然分かりません・・

    J2SEとtomcat5.0をインストールし、C:\j2sdk1.4.2_11とC:\Tomcat5としてインストールしました。 環境変数は変数名/変数値 CATALINA_HOME/C:\Tomcat5 CLASSPATH/.;%JAVA_HOME%\lib\tools.jar;C:\Tomcat5\common\lib\servlet-api.jar JAVA_HOME/C:\j2sdk1.4.2_11 PATH/%JAVA_HOME%\bin と設定しました。 普通にJAVAなども使えてtomcatも起動できるのですが、 http://www.hellohiro.com/servlet.htmで、HelloWorldServlet.javaをDL、コンパイルしclassを作って、C:\Tomcat5\webapps\servlets-examples\WEB-INF\classesなどに置いたのですが、 http://localhost:8080/examples/servlet/HelloWorldServletを実行しても HTTPステータス 404 - /examples/servlet/HelloWorldServletのエラーとなってしまいます。 色々なサイトを回って試したのですが、http://f44.aaa.livedoor.jp/~takamura/www/tomcat.htmlのサイトを参考に、 http://localhost:8080/のTomcat Administrationからログインして説明通りにやろうとしたら、CATALINA_HOMEの間違ったうちにやってしまったのかわかりませんが、コンテキストは既に存在しています、となってしまったりしました。 そのへんはやる必要なかったのかもしれませんが、tomcat5.0の場合は、 C:\Tomcat5\conf\Catalina\localhostに、C:\Tomcat5\webapps\の中に作成した自分で決めた名前のxmlを作成したりするらしいのですが、わかりやすく解説してあるサイトはありますでしょうか・・? tomcatを起動している最中に、http://localhost:8080/に続くアドレス で自分で用意したclassとxmlから、一番簡単なサーブレットを動かしてみたいです。よろしくお願いします。