J'ai un paquet dans lequel j'importe javax.servlet. * Et javax.servlet.http. * Lorsque j'essaie de le compiler avec la commande Invite, l'erreur se produit.
le paquet javax.servlet n'existe pas
J'utilise JDK 1.7.0 et Tomcat 6.0.
Vous devez ajouter le chemin d'accès au fichier /lib/servlet-api.jar
de Tomcat au chemin d'accès aux classes lors 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. Dans le cas contraire, le dossier en cours, qui est inclus en tant que .
dans l'exemple ci-dessus, est utilisé par défaut. Le ;
est le séparateur de chemin pour Windows; Si vous utilisez un système d'exploitation basé sur Unix, vous devez utiliser plutôt :
.
Si vous travaillez avec le projet maven, ajoutez la dépendance suivante à votre pom.xml.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
Est-ce un JSP ou une servlet?
Eh bien, ces deux packages ne sont pas réellement intégrés à Java comme Java.io. Au lieu de cela, ils sont livrés avec le serveur Web compatible Servlet (par exemple, Tomcat). Ainsi, avant que le compilateur Java puisse compiler notre Servlet, nous devons lui indiquer où trouver les classes dans ces deux packages.
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 vous pouvez le trouver dans le sous-répertoire lib du répertoire d’installation principal de Tomcat (par exemple, d:\Program Files\Apache Group\jakarta- Tomcat-3.2.3\lib\servlet.jar). Pour que le compilateur Java puisse compiler des servlets, vous devez ajouter ce fichier à votre chemin de classe Java. Par défaut, Java recherche uniquement les classes dans le répertoire actuel ("."). Ainsi, "." est le chemin de classe par défaut. Si vous modifiez le chemin de classe pour inclure le fichier servlet.jar (".; D: ...\lib\servlet.jar" sous Windows, ".:/Usr /.../ lib/servlet.jar" sous Unix ), alors le Servlet devrait bien compiler.
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
Dans un environnement Linux, le lien symbolique ne fonctionne apparemment pas. vous devez utiliser le chemin physique. Par exemple, sur ma machine, j'ai un lien symbolique sur /usr/share/tomacat7/lib/servlet-api.jar
et son utilisation en tant qu'argument de chemin de classe a entraîné l'échec de la compilation avec la même erreur. au lieu de cela, je devais utiliser /usr/share/Java/Tomcat-servlet-api-3.0.jar
, qui est le fichier indiqué par le lien symbolique.
C'est ce qui a résolu le problème pour moi:
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
Copiez le fichier " servlet-api.jar " depuis 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 fonctionnera (testé).
JSP et Servlet sont des programmes côté serveur. Comme il s'agit d'un package intégré dans un serveur tel que Tomcat. Le chemin peut être sage
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
Juste que vous voulez faire est Ajouter ceci 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;
Ajoutez servlet-api.jar dans votre chemin de classe. Il sera disponible dans le dossier lib de Tomcat.
Même après avoir essayé la solution suggérée, cela ne résolvait pas mon problème, car de nombreuses instances de chemin Java étaient entrées par moi.
J'ai supprimé tous les chemins liés à Java (version Java différente) de "Path, Java_HOME, JRE_HOME" et créé à partir de frais.
j'ai mis (le chemin peut changer selon l'installation différente)
une. Java_HOME en tant que C:\Program Files\Java\jdk1.8.0_191
b. JRE_HOME en tant que C:\Program Files\Java\jdk1.8.0_191\jre\lib
c. ajouter un chemin de fichier binaire dans le chemin: C:\Program Files\Java\jdk1.8.0_191\bin
ré. CLASSPATH en tant que C:\Apache-Tomcat-7.0.93\lib
n'essayez jamais dans la même commande Invite s'il est déjà ouvert lors de modifications/création de variables système/utilisateur. fermez-le et ouvrez-en un nouveau.
C'est ce que j'ai trouvé. Ajout de /usr/local/Apache-Tomcat-7.0.64/lib/servlet-api.jar dans ma variable d'environnement en tant que CLASSPATH. Le système d'exploitation est iOS.
si vous utilisez bash: ~/.bash_profile $CLASSPATH=/usr/local/Apache-Tomcat-7.0.64/lib/servlet-api.jar
si vous utilisez zsh: ~/.zshrc export CLASSPATH="usr/local/Apache-Tomcat-7.0.64/lib/servlet-api.jar"
Le forcer à fonctionner maintenant, lancez source .bash_profile
(ou .zshrc) .__ ou vous pouvez redémarrer l'ordinateur et cela fonctionne pour l'utilisateur actuel.