I'm trying to import org.apache.commons.fileupload.*
but I am being told that it does not exist.
I am downloading this JAR: http://commons.apache.org/fileupload/
And placing it on the classpath. So what am I doing wrong here?
I'm trying to import org.apache.commons.fileupload.*
but I am being told that it does not exist.
I am downloading this JAR: http://commons.apache.org/fileupload/
And placing it on the classpath. So what am I doing wrong here?
Do you see your class in the jar? To find out if your class exists in a jar, do the following:
# linux
jar tvf jarname.jar | grep classname
# win
jar tvf jarname.jar | findstr classname
To find out if your class exists in any of a number of jars, you can do this:
# linux
for f in `find . -name *.jar`; do echo $f; jar tvf $f | grep classname; done | less
Most likely you're thinking of %CLASSPATH%
environment variable. You shouldn't do that. The JAR file has to go in /WEB-INF/lib
folder of the dynamic web application project. That folder is by default covered by the webapp's classpath. A bit decent IDE (Eclipse, Netbeans, etc) will automagically add it to the Build Path whenever you drop a JAR file in that folder.
When you're compiling using plain vanilla javac.exe
in command console, then you have to specify it in the -cp
argument.
Update:
Assuming that you're using Windows and are sitting in source root folder, here's how javac.exe
should look like:
javac -cp .;/path/to/tomcat/lib/*;/path/to/WEB-INF/lib/* com/example/Servlet.java
Note: the wildcard only works on JDK 1.6 or newer. Otherwise you've to specify all libraries separately.
Since you're writing a servlet, you've probably created a web project. Place your fileupload jar inside the WEB-INF/lib
folder and let refresh your project in the IDE to be placed automatically in your project build path.
Edit Seeing you're using command-line, make sure that you provide the full jar file path to the CLASSPATH
(including the jar name and its extension, separated by semicolon).