Recently, I installed Java 11. When coding, accidentally, instead of compiling Main.java
with javac Main.java
, I wrote java Main.java
. It did not show me any errors and worked out without any issues. Why did this happen? Is this a new feature in newer versions of Java?
Contents of Main.java
:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Running in Java 8:
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)
>>> java Main.java
Error: Could not find or load main class Main.java
Running in Java 11:
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
>>> java Main.java
Hello, World!