2011-10-24 63 views
2

我正在使用MVC體系結構設計Java應用程序。我正在使用Tomcat服務器。 我的目錄結構如下:Java包未導入

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

我在MyModel.java使用package com.example.model聲明。

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. 

誰能告訴我如何解決這個錯誤?爲什麼包沒有被導入?

+0

對servlet代碼做了一些修改,我寫了一個名爲result.jsp的jsp文件,並將它放在C:\ Program Files \ Tomcat 6.0 \ webapps \ amy1 \中。調用jsp文件的新servlet代碼有點像dis ..嘗試 { RequestDispatcher rd = request.getRequestDispatcher(「result.jsp」); rd。向前(請求,響應); } – Amy

+0

在我的網頁上,當我提交我的查詢時,它給出了錯誤404:無法找到JSP文件\ amy1 \ result.jsp。有些身體可以再次提供幫助..?不知道爲什麼d jsp文件沒有找到,儘管將其放置在適當的目錄結構中.. – Amy

+0

請問任何人都可以提供有關此..的幫助嗎? – Amy

回答

2

您還需要將classes目錄放在classpath中,否則javac無法找到您的MyModel類。

看到有人在使用IDE之前使用命令行工具來構建他的類,這真的令人耳目一新。這是學習javac,java和類路徑如何工作的最佳方式。但是,隨着班級數量的增加,它將很快變得更加困難。一旦習慣了命令行工具,我建議你使用Ant來構建你的類。類名的

+0

同意。實際上,它可能有點易於手動管理,因爲現在支持classpath通配符:http://stackoverflow.com/questions/15496/hidden-features-of-java/1859579#1859579 – oksayt

+0

感謝您的幫助。當我將路徑包含在classpath中時。有效。 – Amy

1

幾點意見

  1. 案例是錯誤的:Mymodel.java與MyModel.class。
  2. 此行package com.example.web.是錯誤的:它不能以點號結束並且分號丟失。

修復此問題,然後重試。

0

您必須包含com.example.model類的classpath

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

謝謝你寫下整個命令..它工作。 – Amy

0

Java區分大小寫。所以除非你有一個MyModel類和Mymodel類(其中後延伸前),下面的代碼是不正確的:

MyModel m = Mymodel(c); 

您還在你的目錄樹和MyModellMymodel.java在你的描述中的類。您必須始終爲您的課程使用相同的大寫字母。