我想要编译Tomcat的webappps /电子邮件/ src目录/邮件文件夹中的Servlet类,但我收到编译时错误:类路径问题
./Email/src/Mail/Mail.java:7: package javax.mail does not exist
import javax.servlet.http.*;
./Email/src/Mail/Mail.java:9:package javax.servlet does not exist
import javax.servlet.*;
./Email/src/Mail/Mail.java:12:cannot find symbol
symbol: class HttpServlet
public class mail extends HttpServlet{
^
./Email/src/Mail/Mail.java:14: cannot find symbol
symbol: class HttpServletRequest
location: class Mail.mail
public void doPost(HttpServletRequest request,HttpServletResponse response)
^
./Email/src/Mail/Mail.java:14: cannot find symbol
symbol: class HttpServletRequest
location: class Mail.mail
public void doPost(HttpServletRequest request,HttpServletResponse response)
^
./Email/src/Mail/Mail.java:20: cannot find symbol
symbol: class MessageReading
location: class Mail.mail
MessageReading mr=new MessageReading();
7 errors
命令我使用的编译类:
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps>javac -d ./Email/WEB-INF/classes -cp ./Email/src/Mail/. ./Email/src/Mail/mail.java
这里的servlet类:
package Mail;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;
import javax.servlet.http.*;
import javax.servlet.*;
import Mail.*;
public class mail extends HttpServlet{
public void doPost(HttpServletRequest request,HttpServletResponse response)
{
try{
MessageReading mr=new MessageReading();
}
catch (Throwable e) {
System.out.println("Connection Failed! Check output console");
e.printStackTrace();
}
}
}
我t的编译正确,当我试图通过使用命令编译它:
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps>javac -d ./Email/WEB-INF/classes ./Email/src/Mail/*.java
邮件文件夹中的MessageReading和邮件类。
任何人都可以告诉我为什么第二个命令不工作的第一个?
啊是的 - 史蒂夫乙是对的;未指定-cp时使用环境CLASSPATH变量。然而,我建议您将机器的CLASSPATH留空,因为它可能会导致难以在同事机器上调试或复制的问题(在多个项目上工作)。 – 2010-01-05 18:44:40
我实际上想要类路径头来搜索邮件文件夹中的所有类,如MessageReading,而不必在编译邮件类时指定它的名称。如果以上不行,我该怎么办? – Dusk 2010-01-05 19:08:39