Compiling multiple source files and specifying classpath using javac

By: Baski Viewed: 153816 times  Printer Friendly Format    


Assuming you have a folder named greetings and you have copied all your java source files in that folder, you can compile all of these files with a single command rather than compiling each of them separtely.

This example compiles all the source files in the package greetings.

C:> dir
greetings\
C:> dir greetings
Aloha.java         GutenTag.java      Hello.java         Hi.java
C:> javac greetings\*.java
C:> dir greetings
Aloha.class         GutenTag.class      Hello.class         Hi.class
Aloha.java          GutenTag.java       Hello.java          Hi.java

	

Specifying CLASSPATH while compiling using javac

Having changed one of the source files in the previous example, we recompile it:

C:> cd
\examples
C:> javac greetings\Hi.java
	

Since greetings.Hi refers to other classes in the greetings package, the compiler needs to find these other classes. The example above works, because our default user class path happens to be the directory containing the package directory. But suppose we want to recompile this file and not worry about which directory we're in? Then we need to add \examples to the user class path. We can do this by setting CLASSPATH, but here we'll use the -classpath option.

C:>javac -classpath \examples \examples\greetings\Hi.java
	

If we change greetings.Hi again, to use a banner utility, that utility also needs to be accessible through the user class path.

C:>javac -classpath \examples;\lib\Banners.jar \
	    \examples\greetings\Hi.java
	

To execute a class in greetings, we need access both to greetings and to the classes it uses.

C:>java -classpath \examples;\lib\Banners.jar greetings.Hi


Most Viewed Articles (in Java )

Latest Articles (in Java)

Comment on this tutorial