Компилирует ли команда java Java-программы?

Большинство веб-сайтов в Интернете говорят:

«используйте команду javac для компиляции файла .java. Затем запустите его с помощью команды java»

Но сегодня я попытался запустить Java-программу без javac, и я получил странный результат.

Вот содержимое файла с именем hello.java:

public class Myclass {
 public static void main(String[] args){
    System.out.println("hello world");
  }
}

Затем я запустил:

$ javac hello.java

, что дает мне эту ошибку:

hello.java:1: error: class Myclass is public, should be declared in a file named Myclass.java
public class Myclass {
       ^
1 error

Но когда я запускаю его без команды javac, он выполняется без ошибок.

$ java hello.java
hello world

Команда java также компилирует программу? Если да, зачем нам команда javac?

Версия моего java:

openjdk version "12.0.2" 2019-07-16
OpenJDK Runtime Environment (build 12.0.2+10)
OpenJDK 64-Bit Server VM (build 12.0.2+10, mixed mode)
118
задан LogicalBranch 26 September 2019 в 17:38
поделиться