javac error source option 5 is no longer supported use 6 or later
Error de compilaciĆ³n: el paquete javax.servlet no existe (9)
Tengo un paquete en el que importo javax.servlet. * Y javax.servlet.http. * Cuando intento compilarlo en el símbolo del sistema, aparece el error
el paquete javax.servlet no existe
Yo uso JDK 1.7.0 y Tomcat 6.0.
¿Es un JSP o Servlet?
Bueno, estos dos paquetes no están realmente integrados en Java como java.io. En cambio, vienen con el servidor web con capacidad Servlet (por ejemplo, Tomcat). Entonces, antes de que el compilador de Java pueda compilar nuestro Servlet, debemos informarle dónde encontrar las clases en estos dos paquetes.
Las clases requeridas normalmente se almacenan en un archivo llamado servlet.jar. La ubicación exacta de este archivo dependerá del software de servidor web particular que utilice, pero en el caso de Tomcat puede encontrarlo en el subdirectorio lib del directorio de instalación principal de Tomcat (por ejemplo, d: / Program Files / Apache Group / jakarta- tomcat-3.2.3 / lib / servlet.jar). Para que el compilador de Java pueda compilar Servlets, debe agregar este archivo a la ruta de clase de Java. De forma predeterminada, Java busca clases en el directorio actual (".") Solamente. Por lo tanto, "." es la ruta de clase predeterminada. Si cambia la ruta de clase para incluir el archivo servlet.jar (".; D: ... / lib / servlet.jar" en Windows, ".: / Usr /.../ lib / servlet.jar" en Unix ), entonces el Servlet debería compilar muy bien.
Puede especificar una ruta de clase para usar cuando ejecuta javac.exe de la siguiente manera:
d:/javadev> javac -classpath ".;d:/Program Files/Apache Group/ jakarta-tomcat-3.2.3/lib/servlet.jar" MyServlet.java
O en Linux javac usa: en lugar de;
server1> javac -classpath ".:./servlet/servlet.jar" MyServlet.java
Agregue servlet-api.jar a su classpath. Estará disponible en la carpeta lib de Tomcat.
Copie el archivo " servlet-api.jar " de la ubicación YOUR_INSTILLATION_PATH / tomcat / lib / servlet-api.jar y pegue el archivo en su directorio Java YOUR_INSTILLATION_PATH / Java / jdk1.8.0_121 / jre / lib / ext
esto funcionará (probado).
En un entorno Linux, aparentemente el enlace no funciona. debes usar la ruta física. por ejemplo, en mi máquina tengo un enlace suave en /usr/share/tomacat7/lib/servlet-api.jar
y el uso de este como mi argumento classpath llevó a una compilación fallida con el mismo error. en su lugar, tuve que usar /usr/share/java/tomcat-servlet-api-3.0.jar
que es el archivo al que apuntaba el enlace suave.
Esto es lo que encontré. Agregando /usr/local/apache-tomcat-7.0.64/lib/servlet-api.jar en mi variable de entorno como CLASSPATH. OS es iOS.
si usa bash: ~ / .bash_profile $CLASSPATH=/usr/local/apache-tomcat-7.0.64/lib/servlet-api.jar
si usa zsh: ~ / .zshrc export CLASSPATH="usr/local/apache-tomcat-7.0.64/lib/servlet-api.jar"
Haga que funcione en este momento, ejecute source .bash_profile
(o .zshrc) o uno puede reiniciar la computadora y funciona para el usuario actual.
Esto es lo que me solucionó el problema:
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
JSP y Servlet son Programación del lado del servidor. Como viene como un paquete integrado dentro de un Servidor como Tomcat. El camino puede ser como sabio
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
Lo único que desea hacer es Agregar esto de la siguiente manera
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;
Si está trabajando con el proyecto maven, agregue la siguiente dependencia a su pom.xml
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
/lib/servlet-api.jar
agregar la ruta al archivo /lib/servlet-api.jar
de Tomcat al classpath del tiempo de compilación.
javac -cp .;/path/to/Tomcat/lib/servlet-api.jar com/example/MyServletClass.java
El classpath es donde Java necesita buscar dependencias importadas. De lo contrario, se establecerá de forma predeterminada en la carpeta actual que se incluye como .
en el ejemplo anterior. El ;
es el separador de ruta para Windows; si está utilizando un sistema operativo basado en Unix, entonces debe usar :
lugar.