J'ai le jre7 et jdk1.7.0 installé avec le Tomcat 7.0 mais il montre cette erreur. servlet.http n'est pas le seul qui "n'existe pas", il existe également d'autres composants (servlet.).
Quelqu'un peut-il m'aider avec ça?
UPDATE: Cette erreur se produit lorsque j'essaie la commande suivante: Javac -classpath servlet-api.jar WebTest.Java
Votre variable CLASSPATH ne pointe pas vers le répertoire contenant les classes javax. La variable CLASSPATH spécifie où le compilateur Java doit rechercher les ressources de fichier de classe Java. S'il ne sait pas chercher dans le répertoire javax, il ne trouvera jamais le ou les fichiers que vous recherchez.
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>
Si vous utilisez la console de commande pour compiler le servlet, vous devez inclure le /lib/servlet-api.jar
de Tomcat dans le chemin de classe de compilation.
javac -cp .:/path/to/Tomcat/lib/servlet-api.jar com/example/MyServlet.Java
(utilisez ;
au lieu de :
comme séparateur de chemin dans Windows)
Si vous utilisez un environnement de développement intégré, vous devez alors intégrer Tomcat dans IDE et le référencer en tant que cible d'exécution dans le projet. Si vous utilisez Eclipse en tant qu'EDI, consultez également cette section pour plus de détails: Comment importer l'API javax.servlet dans mon projet Eclipse?
Sur * nix, essayez:
javac -cp $CLASSPATH:$CATALINA_HOME/lib/servlet-api.jar Filename.Java
Ou sous Windows, essayez:
javac -cp %CLASSPATH%;%CATALINA_HOME%\lib\servlet-api.jar Filename.Java
Si vous utilisez Ant et essayez de construire, vous devez:
Spécifiez l'emplacement de Tomcat avec <property name="Tomcat-home" value="C:\xampp\Tomcat" />
Ajoutez les bibliothèques Tomcat au chemin déjà défini pour les fichiers jar en
<path id="libs">
<fileset includes="*.jar" dir="${WEB-INF}/lib" />
<fileset includes="*.jar" dir="${Tomcat-home}/bin" />
<fileset includes="*.jar" dir="${Tomcat-home}/lib" />
</path>
Cette erreur se produit lorsque vous compilez un programme Java à l'aide de classes prenant en charge l'API Servlet. Le compilateur recherche la bibliothèque (incluse dans un fichier .jar) à l'aide de CLASSPATH. Vous pouvez spécifier cela lorsque vous compilez à l'aide des options -classpath
ou -cp
comme indiqué dans les autres réponses, mais vous devez configurer votre environnement pour définir le chemin d'accès aux classes en fonction des besoins.
Définissez la variable d'environnement CLASSPATH pour référencer l'emplacement de servlet-api.jar
, qui dépend de votre configuration (système d'exploitation, mode d'installation, etc.).
En supposant que vous utilisiez Tomcat et que vous l’ayez installé de l’une des 20 manières possibles, les API utilisées par les servlets seront installées sur votre système, en fonction de l’emplacement où Tomcat est installé. Pour des raisons historiques, Tomcat est également connu sous le nom de "Catalina". Vous pouvez donc utiliser la commande "catalina" pour exécuter certaines commandes. Seul, il signalera, entre autres choses, le CATALINA_BASE
. Par exemple, sur mon Mac utilisant Tomcat installé à l’aide de l’homebrew, c’est
Using CATALINA_BASE: /usr/local/Cellar/Tomcat/8.5.9/libexec
L'emplacement des bibliothèques de servlets Tomcat se trouve sous le répertoire lib
. Définissez CATALINA_BASE, puis définissez CLASSPATH en utilisant la base comme point de départ. Par exemple, pour Linux ou OSX, vous pouvez définir ceci dans .profile
ou .bash_profile
de la manière suivante:
export CATALINA_BASE=/usr/local/Cellar/Tomcat/8.5.9/libexec
export CLASSPATH=$CATALINA_BASE/lib/servlet-api.jar:$CLASSPATH
Quittez le terminal/Shell et revenez pour exécuter le profil. Vous devriez pouvoir voir que la variable est définie en utilisant la commande echo
, par exemple.
echo $CLASSPATH
ou sous Windows
echo %CLASSPATH%
S'il affiche le chemin complet du fichier jar `javac WebTest.Java ', compilez votre classe.
D’autres réponses sont correctes - configurez votre IDE (Eclipse, IntelliJ) pour en savoir plus sur Tomcat ou construisez-vous avec Maven pour économiser la douleur.
Vous devez ajouter la classpath
pour compiler. Dans Tomcat
classpath="C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar".
Donc la commande est
javac -classpath "c:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar" yourfile.Java .
La solution qui fonctionne est d'ajouter la dépendance suivante à mon fichier pom.xml.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>