How to compile multiple java source files in command line
I know running javac file1.java
produces file1.class
if file1.java
is the only source file, then I can just say java file1
to run it.
However, if I have 2 source files, file1.java
and file2.java
, then how do I build the program?
Try the following:
javac file1.java file2.java
or you can use the following to compile the all java source files in current directory..
javac *.java
Here is another example, for compiling a java file in a nested directory.
I was trying to build this from the command line. This is an example from 'gradle', which has dependency 'commons-collection.jar'. For more info, please see 'gradle: java quickstart' example. -- of course, you would use the 'gradle' tools to build it. But i thought to extend this example, for a nested java project, with a dependent jar.
Note: You need the 'gradle binary or source' distribution for this, example code is in: 'samples/java/quickstart'
% mkdir -p temp/classes
% curl --get \
http://central.maven.org/maven2/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar \
--output commons-collections-3.2.2.jar
% javac -g -classpath commons-collections-3.2.2.jar \
-sourcepath src/main/java -d temp/classes \
src/main/java/org/gradle/Person.java
% jar cf my_example.jar -C temp/classes org/gradle/Person.class
% jar tvf my_example.jar
0 Wed Jun 07 14:11:56 CEST 2017 META-INF/
69 Wed Jun 07 14:11:56 CEST 2017 META-INF/MANIFEST.MF
519 Wed Jun 07 13:58:06 CEST 2017 org/gradle/Person.class
1.use wildcard
2.use options
3.https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javac.html