Je suis en train de compiler la classe Servlet dans de Tomcat webappps/Courriel/src/dossier de courrier, mais je reçois des erreurs de compilation de temps:problème classpath
./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
La commande que je suis à l'aide pour compiler la classe est:
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
est ici la classe 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();
}
}
}
I t de la compilation correctement, quand je suis en train de le compiler en utilisant la commande:
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps>javac -d ./Email/WEB-INF/classes ./Email/src/Mail/*.java
La MessageReading et la classe de courrier dans le dossier Mail.
Quelqu'un peut-il s'il vous plaît me dire pourquoi la deuxième commande a travaillé pas le premier?
Ah oui - Steve B. a raison; votre variable CLASSPATH d'environnement est utilisée lorsque -cp n'est pas spécifié. Cependant, je recommande de laisser vide le CLASSPATH de votre machine, car cela peut entraîner des problèmes plus tard (travailler sur plusieurs projets) qui sont difficiles à déboguer ou à reproduire sur les machines de vos collègues. –
Je veux réellement l'entête de classpath pour rechercher toutes les classes dans le dossier de courrier, comme MessageReading, sans spécifier son nom au moment de compiler la classe de courrier. Comment pourrais-je faire si ça ne marche pas? – Dusk