Java包未导入

时间:2011-10-24 06:54:44

标签: java jsp

我正在使用MVC架构在Java中设计Web应用程序。我正在使用Tomcat服务器。 我的目录结构如下:

Myprojects
|
amy1-------------------------
|       |      |  |        |
src     lib   etc web    classes
|                        |   
com                      com
|                         |
example----------        example
|               |        |     |
web           model      web   model
|               |                 |
MyServlet      Mymodel.java       MyModel.class
.java

我在package com.example.model中使用了MyModel.java语句。

MyServlet的代码是这样的:

package com.example.web.
import com.example.model.*;
// ...
String c = request.getParameter();
MyModel m = Mymodel(c);

当我使用javac

时,我在此目录中
C:\MyProjects\amy1

我执行以下javac命令:

javac -classpath "C:\Program Files\Tomcat 6.0\lib\servlet-api.jar" -d classes "src\com\example\MyServlet.java"

我收到编译错误说:

1. import of package com.example.model.* failed.
2. symbol not found error on line where I create Mymodel object.

谁能告诉我如何解决这个bug?为什么包裹没有被导入?

4 个答案:

答案 0 :(得分:2)

您还需要将classes目录放在类路径中,否则javac找不到您的MyModel类。

在使用IDE之前,看到有人使用命令行工具构建他的类,真的很令人耳目一新。这是学习javac,java和classpath如何工作的最佳方式。但是当课程数量增加时,它会很快变得更难。我建议您在习惯命令行工具后使用Ant来构建类。

答案 1 :(得分:1)

几条评论

  1. 类名的情况是错误的:Mymodel.java与MyModel.class。
  2. 这一行package com.example.web.错误:它不能用点终止,分号丢失。
  3. 修复此问题并重试。

答案 2 :(得分:0)

您必须包含classpath个com.example.model类。

>javac -cp .;"C:\MyProjects\amy1\classes";"C:\Program Files\Tomcat 6.0\lib\servlet-api.jar" -d classes "src\com\example\MyServlet.java"

答案 3 :(得分:0)

Java区分大小写。所以除非你有两个一个MyModel类和一个Mymodel类(后者扩展前者),以下代码不正确:

MyModel m = Mymodel(c);

您还在目录树中提及Mymodel.java,并在说明中提及MyModell类。您必须始终为您的班级使用相同的大写字母。