У меня есть пакет, в который я импортирую javax.servlet. * и javax.servlet.http. * Когда я пытаюсь скомпилировать его в командной строке, я получаю сообщение об ошибке
пакет javax.servlet не существует
Я использую JDK 1.7.0 и Tomcat 6.0.
У меня есть пакет, в который я импортирую javax.servlet. * и javax.servlet.http. * Когда я пытаюсь скомпилировать его в командной строке, я получаю сообщение об ошибке
пакет javax.servlet не существует
Я использую JDK 1.7.0 и Tomcat 6.0.
Вам нужно добавить путь к файлу Tomcat /lib/servlet-api.jar
к пути пути компиляции.
javac -cp .;/path/to/Tomcat/lib/servlet-api.jar com/example/MyServletClass.java
Путь к классам - это то, где Java должен искать импортированные зависимости. В противном случае по умолчанию будет установлена текущая папка, которая включена в качестве .
в приведенном выше примере. ;
- разделитель путей для Windows; если вы используете ОС на базе Unix, тогда вам нужно использовать :
.
Если вы работаете с проектом maven, добавьте следующую зависимость к вашему pom.xml
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
Это JSP или сервлет?
Ну, эти два пакета arent фактически встроены в Java, например java.io. Вместо этого они поставляются с веб-сервером, поддерживающим сервлеты (например, Tomcat). Поэтому, прежде чем компилятор Java сможет скомпилировать наш Servlet, нам нужно сообщить ему, где найти классы в этих двух пакетах.
Необходимые классы обычно хранятся в файле servlet.jar. Точное местоположение этого файла зависит от конкретного программного обеспечения веб-сервера, которое вы используете, но в случае Tomcat вы можете найти его в подкаталоге lib основного каталога установки Tomcat (например, d:\Program Files\Apache Group\jakarta- кот-3.2.3\Lib\servlet.jar). Чтобы компилятор Java мог компилировать сервлеты, вам нужно добавить этот файл в свой путь к Java-классу. По умолчанию Java ищет классы только в текущем каталоге ( "." ). Таким образом, "." это путь по умолчанию. Если вы измените путь к классу, чтобы включить файл servlet.jar( ".; D:...\lib\servlet.jar" под Windows ".:/Usr/.../lib/servlet.jar" в Unix), то сервлет должен компилироваться просто отлично.
Вы можете указать путь к классу, который будет использоваться при запуске javac.exe следующим образом:
d:\javadev> javac -classpath ".;d:\Program Files\Apache Group\ jakarta-tomcat-3.2.3\lib\servlet.jar" MyServlet.java
Или в Linux javac использует: вместо:
server1> javac -classpath ".:./servlet/servlet.jar" MyServlet.java
В среде Linux мягкая ссылка, по-видимому, не работает. вы должны использовать физический путь. например, на моей машине у меня есть softlink в /usr/share/tomacat7/lib/servlet-api.jar
, и использование этого в качестве аргумента classpath привело к неудачной компиляции с той же ошибкой. вместо этого я должен был использовать /usr/share/java/tomcat-servlet-api-3.0.jar
, который является файлом, на который указывает мягкая ссылка.
Вот что я решил для меня:
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
Скопируйте файл " servlet-api.jar " из расположения YOUR_INSTILLATION_PATH\tomcat\lib\servlet-api.jar и вставьте файл в свой каталог Java YOUR_INSTILLATION_PATH\Java\jdk1.8.0_121\jre\lib\ext
это будет работать (проверено).
Добавьте servlet-api.jar в свой путь к классам. Он будет доступен в папке Tomcat lib.
JSP и Servlet - это программирование на стороне сервера. Поскольку он поставляется в виде встроенного пакета внутри сервера, такого как Tomcat. Путь может быть как мудрый
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
Просто вы хотите сделать это. Добавьте это следующим образом.
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;
Вот что я нашел. Добавление /usr/local/apache -tomcat-7.0.64/lib/servlet-api.jar в моей переменной среды как CLASSPATH. ОС - iOS.
если используется bash: ~/.bash_profile $CLASSPATH=/usr/local/apache-tomcat-7.0.64/lib/servlet-api.jar
если использовать zsh: ~/.zshrc export CLASSPATH="usr/local/apache-tomcat-7.0.64/lib/servlet-api.jar"
Задействуйте его сейчас, запустите source .bash_profile
(или .zshrc)
или можно перезагрузить компьютер, и он работает для текущего пользователя.
Даже после попытки предложить решение, это не решило мою проблему, потому что там, где я ввел много экземпляров пути Java.
Я удалил все пути, связанные с Java (разные версии Java) из "Path, JAVA_HOME, JRE_HOME" и создал из свежих.
Я установил (путь может меняться в зависимости от установки)
а. JAVA_HOME как C:\Program Files\Java\jdk1.8.0_191
б. JRE_HOME как C:\Program Files\Java\jdk1.8.0_191\jre\lib
с. добавьте двоичный путь к файлу в путь: C:\Program Files\Java\jdk1.8.0_191\bin
д. CLASSPATH как C:\apache-tomcat-7.0.93\lib
Никогда не пытайтесь в той же командной строке, если она уже открыта при выполнении изменений/создания системных/пользовательских переменных. закройте его и откройте новый.
Возможное решение (протестировано на Ubuntu)
geany.bashrc
export CLASSPATH=$CLASSPATH: /web/apache-tomcat-8.5.39/lib/servlet-api.jar