Compiling Java classes, building jar files and running the code
Compile and run single class
If you program consists of one single class, compile it:
$ javac Program.java
Run main method:
$ java -cp . Program
or even shorter:
$ java Program
Compiling and building jar
Build following directory structure:
+ - HelloWorld (project name - base directory (./))
+ - src (source files)
+ - abcd (package name - .java files)
+ - build
+ - classes (compiled files - .class files)
This is a test class:
package abcd;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello Java world.");
}
}
Save this file in ./src/abcd as 'HelloWorld.java'.
Compiling
Now you can compile the java file:
$ javac -sourcepath ./src/ -d ./build/classes/ ./src/abcd/HelloWorld.java
This should create 'HelloWorld.class' file in ./build/classes directory
Running
Run compiled class:
$ java -cp ./build/classes/ abcd.HelloWorld
This should result in displaying a message in console window:
Hello Java world.
Building jar
Manifest
Before building jar, you must create Manifest file. This file tells the jar file in which class the main method is.
On unix you can simply create manifest file like this:
$ echo Main-Class: abcd.HelloWorld>myManifest
This creates new document called 'myManifest' with following line
Main-Class: abcd.HelloWorld
Build jar
$ jar cfm ./build/jar/HelloWorld.jar myManifest -C ./build/classes/ .
Don't forget white_space and . at the end of line. This means all the class files inside ./build/classes
Run jar
When jar is successfully created, you can run it with:
$ java -jar ./build/jar/HelloWorld.jar