I am trying to run a sample application from HttpClient 4.0.1. It is the file ClientMultiThreadedExecution.java from the examples section. I put in these files in the clas
That class is in httpclient-4.0.1.jar (I've just downloaded it to be sure) so I suspect you haven't put it in the classpath properly.
How are you compiling and running your code?
This exception tells that the mentioned class is missing in the runtime classpath.
There are several ways to specify the runtime classpath, depending on how you're executing the program. Since a decent IDE takes this all transparently from your hands, I bet that you're running it in a command prompt.
If you're running it as a JAR file by java.exe -jar
or doubleclicking the file, then you need to specify the classpath in the Class-Path
entry of the JAR's MANIFEST.MF
file. Note that the %CLASSPATH%
environment variable and -cp
and -classpath
arguments are ignored whenever you execute a JAR.
If you're running it as a "plain vanilla" Java application by java.exe
, then you need to specify it in the -cp
or -classpath
argument. Note that whenever you use this argument, the %CLASSPATH%
environment variable is ignored.
Either way, the classpath should exist of a (semi)colonseparated string of paths to JAR files (either absolute paths or relative to current working directory). E.g.
java -cp .;/path/to/file1.jar;/path/to/file2.jar com.example.MyClass
(if you're on Unix/Linux, use colon instead of semicolon as path separator)
When I experienced this issue, it turned out that when I added the Fluent API as a Maven dependency, it imported a different version of the HTTPClient API than the one I was already using. Both versions of the API were packaged in the resulting JAR's lib folder. The version conflict is what caused this error.
Adding entries to your classpath will fix the problem, because you're just manually specifying what version to use. However, to fix the underlying problem, I just needed to delete my target folder before rebuilding (or run maven clean). This removed any "cached" library JARs, and on the next build, only re-downloaded the correct one.
Hope that helps somebody!
Running Eclipse Luna 2 (4.4.2) inside cloudera-quickstart-vm-5.8.0 I had to add the following
... and then it worked without errors