Create a Java program WITHOUT some fancy IDE

How to create a JAVA application WITHOUT the use of a Commercial IDE

Recently I decided I was bored and needed to learn something new. So I decide to try JAVA seeing as that was the Language that many others on this forum had chosen.

But unlike everyone else here. I wanted to learn from the ground up, and not rely on some fancy IDE.
Or I wanted to learn ‘Long Division’ before buying a calculator.

It took me hours of research, and consultations with both Norman and Thorsten. Before I was able to ferret out a series of steps the worked. So here is ONE approach. If anyone has alternative syntax or steps feel free to let me know.

NOTE : These steps are specific to macOS, but should be “mostly” the same for Window/Linux

Step 01
Decide on the NAME for you application [we will use ‘FOO’ here]
you should of course select a name that is appropriate for your project

Step 02
Create an empty directory structure with the name of your application [FOO]

Step 03
write your java source using your favorite Text Editor
[IMPORTANT… each file MUST use ‘.java’ as the extension]
store these files in the FOO directory
Note : the hows and whys of the actual Java programming language syntax can be found elsewhere

Step 04
execute TERMINAL
navigate to the FOO directory you created above
compile your Java Source using this command

javac -classpath . *.java

This tells java to compile ALL *.java files located in the current directory [-classpath .]

use javac --help if you want to see more compiler options

Step 05
in your favorite text editor create a file named ‘MANIFEST.MF
Edit this file and insert the following lines

IMPORTANT! this file must contain no addtional whitespace, there are no spaces BEFORE the “:” and only ONE after it, and the file MUST end with a Linefeed

Main-Class: XXXXX

Replace XXXX with the class name from one of your .java files that is “main”, see example below

Step 06
create a JAR file from everything… a JAR is a Java ARchive

jar -cmvf MANIFEST.MF foo *.class

Step 07
Execute your new Java program using

java -jar foo

Example :

Create a Directory named “OldMac”
copy these 3 files

File #1 - name OldMacDriver.java

 public class OldMacDriver {
      public static void main( String[] args ) {
           OldMacCow maudine = new OldMacCow();
           OldMacCow pauline = new OldMacCow();
           maudine.moo();
           pauline.moo();
  
           OldMacDuck ferdinand = new OldMacDuck();
           ferdinand.quack();
      }
 }

File #2 - name OldMacCow.java

public class OldMacCow {
   public void moo() {
      System.out.println("Cow still says moo.");
   }
}

File #3 - name OldMacDuck.java

public class OldMacDuck {
   public void quack() {
      System.out.println("Duck still says quack.");
   }
}

here are our “steps”
Step 01 - name of our App is “OldMac”

Step 02 - we created our directory

Step 03 - we added 3 .java source code files

Step 04 - go to terminal, CD to “OldMac” and execute
javac -classpath . *.java
this will create a .class version of each .java file

Step 05 - create a file called 'MANIFEST.MF" with the contents

Manifest-Version: 1.0
Main-Class: OldMacDriver

NOTE : ‘OldMacDriver’ is the class named in our 1st Java file above

Step 06 - create a JAR file using

jar -cmvf MANIFEST.MF OldMac *.class

Step 07 - Run it

java -jar oldmac

Output should be

Cow still says moo.
Cow still says moo.
Duck still says quack.

Note… this is a SIMPLE example… and I’ll be honest , if there are issues, I may or may not be able to help… I myself have just started to learn all of this

But I hope this helps

2 Likes