63 votes

Erreur de compilation : le paquet javax.servlet n'existe pas

J'ai un paquet dans lequel j'importe javax.servlet.* et javax.servlet.http.*. Lorsque j'essaie de le compiler dans l'invite de commande, j'obtiens l'erreur suivante

Le paquet javax.servlet n'existe pas

J'utilise JDK 1.7.0 et Tomcat 6.0.

79voto

BalusC Points 498232

Vous devez ajouter le chemin d'accès au fichier /lib/servlet-api.jar dans le classpath de la compilation.

javac -cp .;/path/to/Tomcat/lib/servlet-api.jar com/example/MyServletClass.java

Le classpath est l'endroit où Java doit rechercher les dépendances importées. Sinon, il utilisera par défaut le dossier actuel qui est inclus dans le chemin de classe. . dans l'exemple ci-dessus. Le site ; est le séparateur de chemin pour Windows ; si vous utilisez un système d'exploitation basé sur Unix, vous devez utiliser : à la place.

Si vous êtes toujours confronté à la même erreur de complication, et que vous êtes en fait en utilisant Tomcat 10 ou une version plus récente, vous devez migrer les importations dans votre code source de javax.* a jakarta.* .

import jakarta.servlet.*;
import jakarta.servlet.http.*;

Voir aussi :

2 votes

C'est vrai, mais à l'avenir, pensez à utiliser maven pour résoudre ce genre de problèmes.

9 votes

Ou simplement un IDE comme Eclipse. Je vous recommande cependant de continuer à apprendre à la dure jusqu'à ce que vous puissiez presque en rêver. Sinon, il sera difficile de comprendre comment les IDE fonctionnent sous les couvertures.

0 votes

Mes excuses, si j'ai plus d'une classe de servlet, comment puis-je les ajouter pour résoudre ce problème ? merci

9voto

Frankline Points 8947

Est-ce un JSP ou un Servlet ?

En fait, ces deux paquets ne sont pas intégrés à Java comme java.io. Au lieu de cela, ils sont fournis avec le serveur Web compatible avec les servlets (par exemple, Tomcat). Ainsi, avant que le compilateur Java ne soit en mesure de compiler notre servlet, nous devons lui indiquer où trouver les classes de ces deux paquets.

Les classes requises 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 du répertoire d'installation principal de Tomcat (par exemple, d : \Program Fichiers \Apache Groupe \jakarta -tomcat-3.2.3 \lib\servlet.jar ). Pour que le compilateur Java puisse compiler les Servlets, vous devez ajouter ce fichier au chemin des classes Java. Par défaut, Java recherche les classes uniquement dans le répertoire actuel ("."). Ainsi, "." est le chemin des classes par défaut. Si vous modifiez le chemin des classes pour inclure le fichier servlet.jar (".;d :.... \lib\servlet.jar " sous Windows, ".:/usr/.../lib/servlet.jar" sous Unix), alors la servlet devrait compiler sans problème.

Vous pouvez spécifier un chemin 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 sous Linux, javac utilise : au lieu de ;

server1> javac -classpath ".:./servlet/servlet.jar" MyServlet.java

0 votes

Dois-je faire cela à chaque fois que je compile un fichier ? Je veux dire qu'il existe un moyen de définir le classpath à chaque fois que je compile un fichier.

0 votes

Pour que vous puissiez compiler le fichier *.java, vous devez vous assurer que servlet.jar se trouve dans le classpath. Notez que les JSP sont finalement transformées en servlets qui sont, bien sûr, des fichiers Java.

0 votes

Quelqu'un a le conseil : "Si vous utilisez Windows Adding d : \Program Fichiers \Apache Groupe jakarta-tomcat-3.2.3 \lib\servlet.jar ; à la variable JAVA_HOME fait aussi la magie"

5voto

Chezzwizz Points 33

Dans un environnement linux, le lien logiciel ne fonctionne apparemment pas. Vous devez utiliser le chemin physique. Par exemple, sur ma machine, j'ai un lien logiciel à l'adresse suivante /usr/share/tomacat7/lib/servlet-api.jar et l'utiliser comme argument de classpath a fait échouer la compilation avec la même erreur. à la place, j'ai dû utiliser /usr/share/java/tomcat-servlet-api-3.0.jar qui est le fichier vers lequel le lien logiciel pointe.

1voto

Abhendra Singh Points 509

Ajoutez servlet-api.jar dans votre classpath. Il sera disponible dans le dossier lib de Tomcat.

1voto

Ravi Chandran Points 53

JSP et Servlet sont des programmes côté serveur. Il s'agit d'un paquet intégré dans un serveur comme Tomcat. Le chemin peut être le suivant

C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\jsp-api.jar
C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar

Il suffit de l'ajouter de la manière suivante

Right Click> My Computer>Advanced>Environment Variables>System variables

Do> New..> Variable name:CLASSPATH
           Variable value:CLASSPATH=.;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X