Większość witryn internetowych podaje:
„użyj
javac
polecenia, aby skompilować.java
plik. Następnie uruchom go za pomocąjava
polecenia”
Ale dzisiaj próbowałem uruchomić program java bez javac
i otrzymałem dziwny wynik.
Oto zawartość pliku o nazwie hello.java
:
public class Myclass {
public static void main(String[] args){
System.out.println("hello world");
}
}
Potem pobiegłem:
$ javac hello.java
Co daje mi ten błąd:
hello.java:1: error: class Myclass is public, should be declared in a file named Myclass.java
public class Myclass {
^
1 error
Ale kiedy uruchamiam go bez javac
polecenia, wykonywał się bez żadnych błędów.
$ java hello.java
hello world
Czy java
polecenie również kompiluje program? Jeśli tak, po co nam javac
polecenie?
Wersja mojej javy to:
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
a następnie z wiersza poleceń skompiluj go w ten sposób, javac Myclass.java
a następnie uruchom w ten sposób java Myclass
.
javac
nadal używany do kompilacji, jeśli nie chcą wdrożyć kodu źródłowego, lub masz więcej niż jeden plik ( dokumentacja z java
: dla opcji źródłowego pliku wyłącznie używany do uruchamiania jednego programu źródłowego pliku.)
javac
kompiluje źródło Java do interpretowanego kodu bajtowego specyficznego dla maszyny JVM, a java
polecenie ładuje je w module ClassLoader maszyny JVM.