Erreur de compilation: le package javax.servlet n'existe pas
J'ai un forfait dans lequel je import javax.servlet.* et javax.servlet.http.*
Lorsque j'essaie de compiler à l'invite de commande, je reçois l'erreur
package javax.servlet n'existe pas
Je utiliser le JDK 1.7.0 et Tomcat 6.0.
Vous devez vous connecter pour publier un commentaire.
Vous devez ajouter le chemin d'accès à Tomcat
/lib/servlet-api.jar
fichier au moment de la compilation classpath.Le classpath est là que Java a besoin de regarder pour les produits importés des dépendances. Il sera sinon par défaut pour le dossier en cours, qui est compris dans
.
dans l'exemple ci-dessus. Le;
est le séparateur de chemin pour Windows; si vous utilisez un système d'exploitation basé sur Unix, alors vous devez utiliser:
à la place.Si vous travaillez avec un projet maven, puis ajouter la suite de dépendance à votre pom.xml
dependencies { compile group: 'javax.servlet', name: 'servlet-api', version:'2.4' }
Est-il une JSP ou Servlet?
Bien, ces deux paquets ne sont pas réellement intégré dans Java comme java.io est. Au lieu de cela, ils viennent avec la Servlet capable de du serveur Web (par exemple, Tomcat). Donc, avant que le compilateur Java sera en mesure de compiler notre Servlet, nous avons besoin de savoir où trouver les classes dans ces deux paquets.
Les classes nécessaires sont normalement stockées dans un fichier appelé servlet.jar. L'emplacement exact de ce fichier dépend du logiciel de serveur Web que vous utilisez, mais dans le cas de Tomcat, vous pouvez le trouver dans le sous-répertoire lib de la principale Tomcat répertoire d'installation (par ex. d:\Program Files\Apache Group\jakarta-tomcat-3.2.3\lib\servlet.jar). Pour le compilateur Java pour être en mesure de compiler des Servlets, vous devez ajouter ce fichier à votre classe Java chemin. Par défaut, Java regarde pour les classes dans le répertoire courant (".") seulement. Ainsi, le "." est la valeur par défaut du chemin de classe. Si vous modifiez le chemin d'accès de classe pour inclure le servlet.jar fichier (".;d:...\lib\servlet.jar" sous Windows, ".:/usr/.../lib/servlet.jar" sous Unix), puis la Servlet doit compiler l'amende juste.
Vous pouvez spécifier un chemin d'accès de classe à utiliser lorsque vous exécutez javac.exe comme suit:
d:\javadev> javac -classpath ".;d:\Program Files\Apache Group\ jakarta-tomcat-3.2.3\lib\servlet.jar" MyServlet.java
Ou Linux javac utilise : au lieu de ;
server1> javac -classpath ".:./servlet/servlet.jar" MyServlet.java
Dans un environnement linux le doux lien ne semble pas fonctionner. vous devez utiliser le chemin d'accès physique. par exemple sur ma machine j'ai un softlink à
/usr/share/tomacat7/lib/servlet-api.jar
et d'utiliser ce que mon classpath argument conduit à un échec de la compilation avec la même erreur. au lieu de cela, j'ai dû utiliser/usr/share/java/tomcat-servlet-api-3.0.jar
qui est le fichier que le doux lien souligné.C'est ce qui a résolu le problème pour moi:
Copier le fichier "servlet-api.jar" à partir de l'emplacement YOUR_INSTILLATION_PATH\tomcat\lib\servlet-api.jar et Collez le fichier dans votre Répertoire Java YOUR_INSTILLATION_PATH\Java\jdk1.8.0_121\jre\lib\ext
cela fonctionne (testé).
Ajouter servlet-api.jar dans votre classpath. Il sera disponible dans le dossier lib de Tomcat.
JSP et Servlet sont côté Serveur Programmation. Comme il vient comme un paquet à l'intérieur d'un Serveur Tomcat.
Le chemin d'accès peut être comme wise
Juste que vous voulez Faire est d'Ajouter ceci de la façon suivante
Même après avoir essayé la solution proposée, elle n'était pas la résolution de mon problème car là où de nombreux exemple de chemin d'accès java ont été saisies par moi.
J'ai supprimé tous les produits java liées chemin (différent de la version java) à partir de "Chemin d'accès, JAVA_HOME, JRE_HOME" et créé à partir de frais.
j'ai mis (chemin de change comme par différents installation)
un. JAVA_HOME C:\Program Files\Java\jdk1.8.0_191
b. JRE_HOME comme C:\Program Files\Java\jdk1.8.0_191\jre\lib
c. ajouter un binaire chemin du fichier chemin d'accès: C:\Program Files\Java\jdk1.8.0_191\bin
d. CLASSPATH C:\apache-tomcat-7.0.93\lib
n'essayez jamais de la même invite de commande si sa déjà ouvert tout en faisant des changements/création de système/utilisateur variables. fermer et ouvrir un nouveau.
Image De Référence:

C'est ce que j'ai trouvé. Ajout /usr/local/apache-tomcat-7.0.64/lib/servlet-api.jar dans ma variable d'environnement CLASSPATH. OS et iOS.
si vous utilisez bash: ~/.bash_profile
$CLASSPATH=/usr/local/apache-tomcat-7.0.64/lib/servlet-api.jar
si l'aide de zsh: ~/.zshrc exportation
CLASSPATH="usr/local/apache-tomcat-7.0.64/lib/servlet-api.jar"
Force il travail maintenant, exécutez
source .bash_profile
(ou .zshrc)ou on peut redémarrer l'ordinateur et il fonctionne pour l'utilisateur actuel.
La solution (Testé sur ubuntu)
geany .bashrc
export CLASSPATH=$CLASSPATH:/web/apache-tomcat-8.5.39/lib/servlet-api.jar