Compilation and Execution in Java 11

Did you know that, since java 11 , now we don't have to compile the java file and then execute the compiled java class. Instead now we can run the .java file directly and the compilation happens in-memory.

Consider below java class

public class HelloWorldFromJava_11 {
    public static void main(String[] args){
        System.out.println("Hello World From Java_11 !!");
    }

}

Save this java class file as HelloWorldFromJava_11.java

In java 11, we now execute below command to run the HelloWorldFromJava_11 class

G:\YOHAN\java11>G:\YOHAN\softwares_1\openjdk11\bin\java HelloWorldFromJava_11.java
Hello World From Java_11 !!

Before java 11 if we do execute this command, we will get error as shown below.

G:\YOHAN\java11>G:\YOHAN\softwares_1\ibm\ibm_sdk80\bin\java HelloWorldFromJava_11.java
Error: Could not find or load main class HelloWorldFromJava_11.java

We had to execute below 2 commands before java 11 in order to run the HelloWorldFromJava_11 class

G:\YOHAN\java11>G:\YOHAN\softwares_1\ibm\ibm_sdk80\bin\javac HelloWorldFromJava_11.java

G:\YOHAN\java11>G:\YOHAN\softwares_1\ibm\ibm_sdk80\bin\java HelloWorldFromJava_11
Hello World From Java_11 !!