我正在使用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?为什么包裹没有被导入?
答案 0 :(得分:2)
您还需要将classes目录放在类路径中,否则javac找不到您的MyModel
类。
在使用IDE之前,看到有人使用命令行工具构建他的类,真的很令人耳目一新。这是学习javac,java和classpath如何工作的最佳方式。但是当课程数量增加时,它会很快变得更难。我建议您在习惯命令行工具后使用Ant来构建类。
答案 1 :(得分:1)
几条评论
package com.example.web.
错误:它不能用点终止,分号丢失。修复此问题并重试。
答案 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
类。您必须始终为您的班级使用相同的大写字母。