Classpath - Running a Java Program from the Command Line

My code compiled fine with the following command:

javac -cp "../lib/*" AvroReader.java

(lib is where i put my jar files)

At run time I get a ClassNotFoundException on the following line:

DatumReader<?> dtmrdr = new GenericDatumReader();

It says it can't find org.apache.avro.generic.GenericDatumReader even though I've imported it.

Why is this happening?

2

3 Answers

Importing has nothing to do with loading classes or setting CLASSPATH.

Try this:

java -cp .;../lib/* Generator

Using the dot '.' as the first entry in the CLASSPATH assumes that the Generator.class file exists in the directory from which you're running java, and /lib is one level up from that directory. Adjust as needed if both of these are not correct.

7

You should run the program including again the same cp:

java -cp "lib directory where i put all the jars" MainClassOfYourApplication

After you compiled it with:

javac -cp "lib directory where i put all the jars" AvroReader.java

More applied to your example:

First step(compile all the needed java files): javac -cp "path/to/jars/*" AvroReader.java //here you should include all the java files not yet compiled but which you need to run your app
Second step: java -cp "path/to/jars/*" package.subpackage1.subpackage2.Generator
6

To compile and execute java file on Linux System with external jar files :

javac -cp jar_file1.jar:jar_file2:jar_file3.jar:. java_program_name.java

java -cp new_mail_api.jar:activation.jar:additional.jar:.java_program_name

To compile and execute java file on Windows System with external jar files :

javac -cp jar_file1.jar;jar_file2;jar_file3.jar;. java_program_name.java

java -cp new_mail_api.jar;activation.jar;additional.jar;.java_program_name

In Unix of Linux, Java Classpath contains names of the directory with colon “:” separated, On Windows Java Classpath will be semicolon “;” separated while if you defined java classpath in Manifest file those will be space separated.

For more knowledge about Classpath, visit

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

James H. Sterling

James H. Sterling

Environmental Science & Climate Journalist

James Sterling reports on renewable energy developments, climate policy, ecological conservation, and green tech innovations around the globe.

Share this article
Twitter Facebook Pinterest