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