Co je kompilace Javy? | Pochopení „kompilace“ pro začátečníky
V Javě „kompilace“ označuje proces převodu lidsky psaného zdrojového kódu (.java) do formátu, který může číst Java Virtual Machine (JVM).
Výstupem tohoto procesu je soubor .class, který se nazývá bytecode.
Na rozdíl od jazyků jako C, které jsou kompilovány přímo do nativního strojového kódu, Java nejprve převádí zdrojový kód na bytecode a poté jej spouští na JVM.
Díky tomuto mechanismu může stejný soubor .class běžet na různých operačních systémech, což umožňuje stejnému Java programu běžet na Windows, macOS a Linuxu.
Dalším důležitým bodem k pochopení je, že kompilace a vykonání jsou samostatné operace.
- „javac“ → zodpovědný za kompilaci
- „java“ → zodpovědný za vykonání
Zhruba 90 % začátečníků má potíže, protože tento rozdíl není jasný.
Pevné pochopení toho, že tyto dva příkazy mají odlišné role, je nejefektivnější první krok.
Požadavky na kompilaci Javy
Pro kompilaci Java kódu musíte mít nainstalovaný JDK (Java Development Kit).
Pouze JRE není dostačující, protože kompilátor javac je vývojářský nástroj zahrnutý pouze v JDK.
Začněte kontrolou následujícího:
javac -version
Pokud tento příkaz vrátí číslo verze, vše je v pořádku.
Pokud uvidíte zprávu jako „command not found“, pravděpodobně platí jedna z následujících možností:
- JDK není nainstalován
- JDK je nainstalován, ale PATH není nastaven
- Je nainstalováno pouze JRE (žádné vývojářské nástroje)
Obzvláště konfigurace PATH je častým úskalím pro začátečníky.
Pokud systém nemůže najít adresář obsahující javac (nebo bin adresář), kompilace nebude fungovat.
Závěr:
Můžete začít kompilovat Javu až po řádném dokončení jak „instalace JDK“, tak „ověření PATH“.
Kompilace Java souboru v praxi
Zde vytvoříme jednoduchý ukázkový program a zkompilujeme jej pomocí javac.
Nejprve uložte následující obsah v textovém editoru.
Sample.java
public class Sample {
public static void main(String[] args) {
System.out.println("Hello Java!");
}
}
Název souboru musí být Sample.java a je zásadní, aby název veřejné třídy odpovídal názvu souboru.
Java nekompiluje, pokud je toto pravidlo porušeno, a jedná se o klasickou chybu začátečníků.
Dále spusťte následující příkaz ve vašem terminálu nebo příkazovém řádku:
javac Sample.java
Pokud kompilace uspěje, v témže adresáři se objeví soubor Sample.class.
To naznačuje, že kompilace byla úspěšně dokončena.
V tomto okamžiku máte:
- Sample.java (zdrojový kód)
- Sample.class (bytecode)
S tímto párem jste připraveni spustit Java program.
Spuštění programu po kompilaci
Po kompilaci je dalším krokem vykonání souboru .class.
Zde se používá příkaz java, nikoli javac.
java Sample
Klíčové je neuvádět příponu .class.
Pokud napíšete java Sample.class, dojde k chybě.
Java je navržena tak, aby spouštěla programy zadáním názvu třídy.
Shrnutí:
| Role | Command | Target |
|---|---|---|
| Compile | javac Sample.java | .java file |
| Run | java Sample | Class name (no extension) |
Jakmile jasně pochopíte odlišné role javac a java, úspěšně překonáte úroveň začátečníka.
Pokud se na obrazovce objeví „Hello Java!“, váš program byl úspěšně spuštěn.
V tomto okamžiku jste pochopili minimální potřebný Java workflow.
Časté chyby a jak je opravit
Setkání s chybami během kompilace Javy je pro začátečníky naprosto normální.
Zde se zaměříme na nejčastější problémy, se kterými se setkává mnoho uživatelů.
1) javac: command not found
Ve více než 99 % případů je příčinou jedna z následujících:
- JDK není nainstalován
- PATH není správně nakonfigurován
Řešení:
Spusťte javac -version
→ Pokud to nefunguje, přeinstalujte JDK a zkontrolujte nastavení PATH.
2) Kompilace proběhne úspěšně, ale nevytvoří se soubor .class
Nejčastější chyba je:
Název souboru neodpovídá názvu veřejné třídy
Příklad:
public class Test {
}
→ Toto povede k chybě při kompilaci.
3) Varování související s kódováním
warning: [options] bootstrap class path not set in conjunction with -source 1.7
Varování jako toto obvykle nejsou fatální chyby.
Nicméně mohou naznačovat zastaralé volby zdrojového kódu nebo nesoulad kódování.
Aby se předešlo problémům, vždy ukládejte své soubory v UTF-8.
Kompilace pomocí IDE
V reálném vývoji v Javě vývojáři zřídka spouštějí javac ručně z příkazové řádky.
Je to proto, že IDE (Integrovaná vývojová prostředí) provádějí kompilaci automaticky.
Následující IDE jsou obzvláště populární a praktická:
| IDE | Features |
|---|---|
| IntelliJ IDEA | The de facto standard for modern Java development, suitable for professional use. |
| Eclipse | A long-established IDE widely used in enterprise projects. |
| VS Code | Lightweight; Java Extension Pack provides a complete environment. |
IDE automaticky kompilují váš kód pokaždé, když soubor uložíte, a okamžitě zvýrazní chyby.
To odstraňuje mnoho začátečnických úskalí, jako jsou překlepy v příkazech a špatná konfigurace PATH.
Nicméně ruční kompilace pomocí javac alespoň jednou je užitečná pro pochopení vnitřního fungování Javy.
Jakmile pochopíte tok „kompilovat → spustit“, vaše rychlost učení s IDE se výrazně zvýší.
Základní možnosti javac
Příkaz javac podporuje mnoho voleb, které řídí, jak se kompilace provádí.
Na úrovni začátečníka potřebujete pochopit jen několik běžně používaných.
Zde jsou tři reprezentativní možnosti:
| Option | Description | Example |
|---|---|---|
-d | Specifies the output directory for class files | javac -d out Sample.java |
-classpath | Specifies external libraries or additional class paths | javac -classpath lib/* Sample.java |
--enable-preview | Enables preview language features | javac --enable-preview Sample.java |
Volba -d je zvláště důležitá při používání balíčků.
Například pokud použijete package com.example;, vynechání javac -d povede k nesprávné struktuře adresářů.
Jak přecházíte do reálného vývoje, volby classpath a -d se stávají čím dál důležitějšími.
I pouhé rozpoznání jejich názvů včas usnadní budoucí učení.
Shrnutí
Pro spuštění Java programu musíte pochopit tříkrokový proces: psát zdrojový kód → kompilovat → spustit.
Jakmile jsou role javac (kompilace) a java (spuštění) jasné, smysl kompilace se stane zřejmým.
Nejčastější začátečnické úskalí jsou:
- JDK není nainstalován nebo PATH není nakonfigurován
- Název souboru neodpovídá názvu veřejné třídy
Řešením těchto problémů včas můžete předejít zbytečným odbočkám ve vašem učebním procesu.
Můžete přejít na vývoj založený na IDE, jakmile se budete cítit pohodlně, ale pochopení podkladového mechanismu výrazně zlepší vaši rychlost učení.
Použijte tento článek jako výchozí bod a nejprve se soustřeďte na úspěšné převádění jediného souboru .java na soubor .class.
Ten okamžik představuje váš první skutečný milník v učení Javy.
FAQ: Časté otázky o kompilaci Javy
Q1: Jaký je rozdíl mezi javac a java?
A: javac je příkaz pro kompilaci, který převádí soubory .java na soubory .class.
java je příkaz pro spuštění, který spouští soubory .class na JVM.
Q2: Proč se nevytvoří Sample.class?
A: Nejčastější příčinou je nesoulad mezi názvem souboru a názvem public class.
Pokud je třída public class Sample, soubor se musí jmenovat Sample.java.
Q3: Musím se stále učit javac, pokud používám IDE?
A: IDE automaticky kompilují kód, ale bez pochopení procesu může být těžké vědět, co se děje v pozadí. Prožít základní tok jednou usnadní používání IDE.
Q4: Který JDK si mám nainstalovat?
A: Pro začátečníky jsou vhodné LTS verze od Eclipse Adoptium (Temurin).
Pokud nemáte konkrétní požadavky, Java 17 nebo 21 jsou bezpečné volby.
Q5: Dostávám javac: command not found
A: To znamená, že JDK není nainstalován nebo PATH není nakonfigurován.
Nejprve zkontrolujte pomocí javac -version.

