Ошибка импорта Java - PullRequest
       28

Ошибка импорта Java

1 голос
/ 30 сентября 2010

Я пытаюсь import org.apache.commons.fileupload.*, но мне говорят, что его не существует.

Я скачиваю этот JAR: http://commons.apache.org/fileupload/

И поместив его на путь к классам. Так что я тут не так делаю?

Ответы [ 4 ]

1 голос
/ 30 сентября 2010

Скорее всего, вы думаете о %CLASSPATH% переменной среды.Ты не должен этого делать.Файл JAR должен находиться в папке /WEB-INF/lib проекта динамического веб-приложения.Эта папка по умолчанию находится в пути к классам веб-приложения.Немного приличная IDE (Eclipse, Netbeans и т. Д.) Автоматически добавит его в Путь сборки всякий раз, когда вы удаляете файл JAR в эту папку.

Когда вы компилируете с использованием простого vanilla javac.exe в командной консоли, затем вы должны указать его в аргументе -cp.


Обновление : при условии, что вы используете Windows и находитесь в корневой папке источникаВот как должен выглядеть javac.exe:

javac -cp .;/path/to/tomcat/lib/*;/path/to/WEB-INF/lib/* com/example/Servlet.java

Примечание: подстановочный знак работает только в JDK 1.6 или новее.В противном случае вы должны указать все библиотеки отдельно.

0 голосов
/ 30 сентября 2010

Поскольку вы пишете сервлет, вы, вероятно, создали веб-проект. Поместите файл fileupload jar в папку WEB-INF/lib и дайте обновиться вашему проекту в IDE, чтобы он автоматически помещался в путь сборки проекта.


Редактировать Поскольку вы используете командную строку, убедитесь, что вы указали полный путь к файлу jar для CLASSPATH (включая имя банки и его расширение, разделенные точкой с запятой).

0 голосов
/ 30 сентября 2010

Ты видишь свой класс в банке? Чтобы узнать, существует ли ваш класс в банке, выполните следующие действия:

# linux
jar tvf jarname.jar | grep classname

# win
jar tvf jarname.jar | findstr classname

Чтобы узнать, существует ли ваш класс в любом из нескольких банок, вы можете сделать это:

# linux
for f in `find . -name *.jar`; do echo $f; jar tvf $f | grep classname; done | less
0 голосов
/ 30 сентября 2010

Является ли банка в вашем classpath ? Также ознакомьтесь с этим обсуждением недостатков импорта символов подстановки.

...