Ошибка компиляции: пакет javax.servlet не существует - программирование
Подтвердить что ты не робот

Ошибка компиляции: пакет javax.servlet не существует

У меня есть пакет, в который я импортирую javax.servlet. * и javax.servlet.http. * Когда я пытаюсь скомпилировать его в командной строке, я получаю сообщение об ошибке

пакет javax.servlet не существует

Я использую JDK 1.7.0 и Tomcat 6.0.

4b9b3361

Ответ 1

Вам нужно добавить путь к файлу Tomcat /lib/servlet-api.jar к пути пути компиляции.

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

Путь к классам - это то, где Java должен искать импортированные зависимости. В противном случае по умолчанию будет установлена ​​текущая папка, которая включена в качестве . в приведенном выше примере. ; - разделитель путей для Windows; если вы используете ОС на базе Unix, тогда вам нужно использовать :.

Ответ 2

Если вы работаете с проектом maven, добавьте следующую зависимость к вашему pom.xml

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>

Ответ 3

Это 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

Ответ 4

В среде Linux мягкая ссылка, по-видимому, не работает. вы должны использовать физический путь. например, на моей машине у меня есть softlink в /usr/share/tomacat7/lib/servlet-api.jar, и использование этого в качестве аргумента classpath привело к неудачной компиляции с той же ошибкой. вместо этого я должен был использовать /usr/share/java/tomcat-servlet-api-3.0.jar, который является файлом, на который указывает мягкая ссылка.

Ответ 5

Вот что я решил для меня:

<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.2</version>
    <scope>provided</scope>
</dependency>

Ответ 6

Скопируйте файл " servlet-api.jar " из расположения YOUR_INSTILLATION_PATH\tomcat\lib\servlet-api.jar и вставьте файл в свой каталог Java YOUR_INSTILLATION_PATH\Java\jdk1.8.0_121\jre\lib\ext

это будет работать (проверено).

Ответ 7

Добавьте servlet-api.jar в свой путь к классам. Он будет доступен в папке Tomcat lib.

Ответ 8

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;

Ответ 9

Вот что я нашел. Добавление /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) или можно перезагрузить компьютер, и он работает для текущего пользователя.

Ответ 10

Даже после попытки предложить решение, это не решило мою проблему, потому что там, где я ввел много экземпляров пути Java.

  1. Я удалил все пути, связанные с Java (разные версии Java) из "Path, JAVA_HOME, JRE_HOME" и создал из свежих.

  2. Я установил (путь может меняться в зависимости от установки)
    а. 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

  3. Никогда не пытайтесь в той же командной строке, если она уже открыта при выполнении изменений/создания системных/пользовательских переменных. закройте его и откройте новый.

Базовое изображение: enter image description here

Ответ 11

Возможное решение (протестировано на Ubuntu)

  1. Открытый терминал типа geany.bashrc
  2. Перейти к началу и вставить это
    export CLASSPATH=$CLASSPATH: /web/apache-tomcat-8.5.39/lib/servlet-api.jar
  3. Теперь сохраните и закройте
  4. Попробуйте запустить программу сейчас.