Більшість веб-сайтів в Інтернеті кажуть:
"використовувати
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)
Myclass.java
а потім з командного рядка скомпілюйте його так, javac Myclass.java
а потім запустіть його так java Myclass
.
javac
сих пір використовуються для компіляції , якщо ви не хочете , щоб розгорнути вихідний код, або у вас є більш ніж один файл ( документація по java
: для варіанта вихідного файлу використовується тільки для запуску однієї програми вихідного файлу.)
javac
збирає джерело Java у специфічний інтерпретований байт-код JVM, і java
команда завантажує його всередину ClassLoader JVM.