Question: 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?

Answer: 
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](https://docs.gradle.org/1.11/userguide/tutorial_java_projects.html)' 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](https://i.stack.imgur.com/lln2q.png)

2.[use options](https://i.stack.imgur.com/57O6G.png)

3.<https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javac.html>