Większość witryn internetowych podaje:
„użyj
javacpolecenia, aby skompilować.javaplik. Następnie uruchom go za pomocąjavapolecenia”
Ale dzisiaj próbowałem uruchomić program java bez javaci 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 javacpolecenia, wykonywał się bez żadnych błędów.
$ java hello.java
hello world
Czy javapolecenie również kompiluje program? Jeśli tak, po co nam javacpolecenie?
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.javaa następnie z wiersza poleceń skompiluj go w ten sposób, javac Myclass.javaa następnie uruchom w ten sposób java Myclass.
javacnadal 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.)
javackompiluje źródło Java do interpretowanego kodu bajtowego specyficznego dla maszyny JVM, a javapolecenie ładuje je w module ClassLoader maszyny JVM.