JVM nie może bezpośrednio uruchomić napisanego kodu. Może wykonywać tylko programy napisane w kodzie bajtowym. Kod bajtowy to język niskiego poziomu, który jest zbliżony do kodu maszynowego.

Kompilacja do Javy to tłumaczenie programu napisanego w Javie (wysoki poziom) na ten sam program napisany w kodzie bajtowym.

Twój kod w pliku .java jest przekazywany do kompilatora i jeśli nie było błędów w kodzie, po kompilacji otrzymasz nowy plik z kodem bajtowym. Plik będzie miał taką samą nazwę, ale inne rozszerzenie: .class . A jeśli w kodzie były błędy, to mówią, że „program się nie skompilował”. Następnie musisz przeczytać komunikat o błędzie i poprawić je.

Kompilatorem jest polecenie javac zawarte w pakiecie JDK (Java Development Kit). Na przykład, jeśli zainstalujesz tylko JRE (Java Runtime Environment), kompilator nie będzie dostępny! Będzie tylko JVM, która może uruchamiać tylko kod bajtowy. Zainstalujmy więc JDK i przekażmy nasz plik .java do kompilatora .

Weźmy na przykład prosty program z wyjściem do konsoli:


class MySolution {
   public static void main(String[] args) {
      System.out.println("Hi, command line!");
   }
}

Zapiszmy ten kod w pliku D:/temp/MySolution.java .

Skompilujmy nasz kod za pomocą polecenia


D:\temp>javac MySolution.java

Jeśli w kodzie nie ma błędów kompilacji, plik MySolution.class pojawi się w folderze temp . Jednocześnie plik MySolution.java z Twoim kodem nigdzie nie pójdzie, pozostanie na swoim miejscu. Ale MySolution.class zawiera już kod bajtowy i jest gotowy do bezpośredniego uruchomienia przy użyciu maszyny JVM.

Nasz przykład jest tak prosty, jak to możliwe, ale polecenie javac jest również używane w największych i najbardziej złożonych projektach. Dlatego bardzo przydatna jest znajomość zasad jego działania.

Możesz skompilować więcej niż jedną klasę naraz. Załóżmy na przykład, że w folderze tymczasowym znajduje się inny plik Cat.java :


D:\temp>javac MySolution.java Cat.java

lub tak:


D:\temp>javac *.java

Po kompilacji pliki .class można spakować do pliku jar , aby można je było łatwo przenosić i uruchamiać na różnych komputerach. Przykładowe polecenie tworzenia pliku jar :


D:\temp>jar cvfe myjar.jar MySolution MySolution.class Cat.class

Gdzie:

  • jar - polecenie do tworzenia plików .jar , zawarte w JDK;

  • cvfe - znaczenie flag:

    • c - musisz utworzyć nowy plik jar ;

    • v – wyświetl dodatkowe informacje podczas wykonywania polecenia;

    • f - razem z myjar.jar mówi jaką nazwę pliku otrzymamy w wyniku;

    • e - wraz z MySolution wskazuje, która klasa zawiera główną metodę ;

  • MySolution.class Cat.class to oddzielone spacjami nazwy plików, które mają zostać umieszczone w pliku jar .

Uruchamianie wynikowego pliku jar :


D:\temp>java -jar myjar.jar
Aby uzyskać bardziej szczegółowe informacje:
  1. Kompilowanie i uruchamianie aplikacji Java pod maską
  2. Kompilacja do Javy
  3. javac i jar mają wbudowaną pomoc . Aby go wyświetlić, uruchom w wierszu poleceń:
    • javac -- pomoc
    • słoik - pomoc