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: |
---|
|
GO TO FULL VERSION