Большинство сайтов в интернете говорят:
«используйте
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.