Quando inizi a imparare Java, il primo ostacolo che incontrerai è la “compilazione”. Scrivere semplicemente il codice sorgente (.java) non farà eseguire nulla — devi compilarlo usando il comando javac per generare un file .class, e solo allora il programma può essere eseguito. In questo articolo, riassumiamo la procedura di compilazione Java, l’uso base di javac, la configurazione PATH e soluzioni per errori comuni dei principianti — in un flusso che anche un principiante assoluto può seguire passo dopo passo. L’obiettivo è passare da “Da dove inizio con la compilazione Java?” a digitare comandi con sicurezza senza esitazione.
- 1 Cos’è la Compilazione Java?|Spiegazione Amichevole per Principianti di “Compilazione”
- 2 Preparazione Richiesta Prima di Compilare Java
- 3 Compiliamo Attivamente un File Java
- 4 Come Eseguirlo Dopo la Compilazione
- 5 Errori frequenti e come risolverli
- 6 Compilare usando un IDE
- 7 Nozioni di base delle opzioni javac
- 8 Riepilogo
- 9 FAQ: Domande frequenti sulla compilazione Java
Cos’è la Compilazione Java?|Spiegazione Amichevole per Principianti di “Compilazione”
In Java, la “compilazione” è il processo di convertire il codice sorgente scritto dall’uomo (.java) in un formato leggibile dalla Java Virtual Machine (JVM).
L’output risultante è il file .class, chiamato bytecode.
A differenza di linguaggi come C che compilano direttamente in codice nativo, Java prevede un passo intermedio — il codice sorgente viene prima convertito in bytecode, poi eseguito sulla JVM.
Questo meccanismo permette allo stesso file .class di funzionare su diversi ambienti OS — il che significa che puoi eseguire esattamente lo stesso programma Java su Windows, macOS o Linux.
Un altro elemento cruciale che devi capire: compilare ed eseguire sono azioni separate.
- “javac” → gestisce la compilazione
- “java” → gestisce l’esecuzione
La maggior parte dei principianti fallisce perché questa distinzione è vaga per loro. Chiarire questi “due ruoli diversi” diventa il primo passo più efficiente nella tua comprensione.
Preparazione Richiesta Prima di Compilare Java
Per compilare Java, devi avere installato il JDK (Java Development Kit).
Il JRE da solo non può compilare il codice perché lo strumento di compilazione javac è incluso solo nel JDK.
Inizia controllando questo:
javac -version
Se questo comando restituisce un numero di versione, sei a posto.
Se ottieni “command not found” o errori simili, una delle seguenti è altamente probabile:
- Il JDK non è installato
- Il JDK è installato ma PATH non è impostato
- Hai solo JRE installato (nessun kit di sviluppo)
La configurazione PATH è specialmente dove gli utenti giapponesi si bloccano.
Se il sistema operativo non riconosce il percorso fino a javac.exe (o la directory /bin), la compilazione non funzionerà.
Conclusione:
“Prepara il JDK” e “Verifica PATH” — solo con questi due al loro posto puoi stare sulla vera linea di partenza della compilazione Java.
Compiliamo Attivamente un File Java
Qui, creeremo un codice di esempio e confermeremo la procedura per compilarlo con javac.
Prima, salva il seguente contenuto con un editor di testo.
Sample.java
public class Sample {
public static void main(String[] args) {
System.out.println("Hello Java!");
}
}
Il nome del file deve essere Sample.java, e il nome della classe public deve corrispondere al nome del file.
Se questa regola è violata, la compilazione fallirà — questo è uno degli errori più comuni dei principianti.
Successivamente, esegui il seguente nel terminale / prompt dei comandi:
javac Sample.java
Se tutto si esegue normalmente, Sample.class verrà generato nella stessa cartella.
Questo indica “compilazione completata”.
Allora, in questo momento:
- Sample.java (sorgente)
- Sample.class (bytecode)
Questa coppia è ora pronta.
A questo stadio, sei preparato a “eseguire un programma Java”.
Come Eseguirlo Dopo la Compilazione
Dopo che la compilazione è completa, il passo successivo è eseguire il file .class.
Il comando usato qui è java — non javac.
java Sample
Punto chiave: non scrivere l’estensione .class.
Scrivere java Sample.class causerà un errore.
Java è progettato per eseguire basandosi sul nome della classe (senza estensione).
Riassunto organizzato:
| Role | Command | Target |
|---|---|---|
| Compile | javac Sample.java | .java file |
| Run | java Sample | Class name (without extension) |
Se capisci il cambio di ruolo tra javac e java, hai superato lo stadio principiante.
Se “Hello Java!” appare correttamente, il processo ha funzionato.
A questo punto hai compreso il “flusso” minimo di Java.
Errori frequenti e come risolverli
Nella compilazione Java, incontrare errori all’inizio è assolutamente normale.
Qui ci concentriamo solo sugli errori che i principianti giapponesi incontrano particolarmente.
1) javac: comando non trovato / 'javac' non è riconosciuto…
Nel quasi il 100% dei casi, il motivo è uno dei seguenti:
- Il JDK non è installato
- PATH non è configurato
Correzione:
Esegui javac -version per verificare
→ Se non appare nulla, reinstalla il JDK e rivedi la configurazione di PATH.
2) La compilazione ha successo ma non viene generato alcun file .class
Il problema più comune tra i principianti giapponesi è questo:
Il nome del file e il nome della classe pubblica non corrispondono
Esempio — Se Sample.java contiene:
public class Test {
}
→ Questo genererà un errore di compilazione.
3) Avvisi relativi alla codifica dei caratteri
warning: [options] bootstrap class path not set in conjunction with -source 1.7
Avvisi come questi non sono fatali nella maggior parte dei casi.
Tuttavia, possono indicare impostazioni di versione vecchie o codifica non corrispondente.
Salvare i file in UTF-8 è la scelta più sicura.
Compilare usando un IDE
Nello sviluppo Java reale, raramente digiti manualmente javac nel terminale ogni volta.
Questo perché l’IDE (Integrated Development Environment) gestisce automaticamente la compilazione in background.
I seguenti tre IDE sono estremamente popolari in Giappone e sono anche pratici per l’apprendimento:
| IDE | Characteristics |
|---|---|
| IntelliJ IDEA | The de-facto standard for modern Java development. Suitable for professional use. |
| Eclipse | Long history, widely used in enterprise projects. |
| VSCode | Lightweight. Java Extension Pack enables a proper Java environment. |
Negli IDE, la compilazione avviene automaticamente ogni volta che salvi un file — e le posizioni degli errori sono visualizzate istantaneamente.
Ciò significa che puoi aggirare gli ostacoli per principianti come “digitare erroneamente javac” o “configurazione PATH errata”.
Tuttavia, è ancora vero che c’è un grande valore nel provare manualmente javac almeno una volta per capire come funziona Java.
Una volta compreso il flusso “compila → esegui” manualmente, la velocità di comprensione aumenta notevolmente quando passi allo sviluppo basato su IDE.
Nozioni di base delle opzioni javac
javac non è solo un “convertitore .java → .class”. Puoi aggiungere più opzioni per controllare il comportamento della compilazione.
Ma nella fase iniziale non è necessario memorizzare tutto — basta conoscere quelle più comuni.
Ecco tre opzioni rappresentative:
| Option | Meaning | Example |
|---|---|---|
-d | Specify output directory for .class files | javac -d out Sample.java |
-classpath | Specify classpath for external libraries / other directories | javac -classpath lib/* Sample.java |
--enable-preview | Enable preview language features | javac --enable-preview Sample.java |
In particolare -d è quasi obbligatorio quando si usano i pacchetti.
Ad esempio, se scrivi package com.example;, devi usare javac -d per generare correttamente la struttura di directory nella cartella di output.
Man mano che entri nel lavoro reale, la specifica del classpath e l’uso di -d aumentano drasticamente.
Essere consapevoli di questi nomi in questa fase rende l’apprendimento successivo più fluido.
Riepilogo
Per eseguire i programmi Java, devi comprendere la sequenza a 3 passaggi: scrivi il sorgente → compila → esegui.
Specialmente se separi mentalmente i ruoli di javac (compilazione) e java (esecuzione), il motivo “perché la compilazione è necessaria” diventa improvvisamente chiaro.
Inoltre, i principianti di solito si bloccano su questi due punti:
- Il JDK non è installato / PATH non è configurato
- Il nome del file e il nome della classe pubblica non sono gli stessi
Se risolvi solo questi due, eviterai grandi deviazioni nella fase di apprendimento.
Dopo esserti abituato alle basi, passare allo sviluppo con IDE è perfettamente accettabile.
Tuttavia, il fatto di “capire il meccanismo interno” è ciò che in seguito crea una differenza nella velocità di comprensione.
Usa questo articolo come punto di partenza e completa con successo .java → .class una volta.
Questo è il primo traguardo da raggiungere nell’apprendimento di Java.
FAQ: Domande frequenti sulla compilazione Java
D1: Qual è la differenza tra javac e java?
R: javac è il comando per la compilazione — converte .java in .class.
D’altra parte, java è il comando per l’esecuzione — esegue il .class sulla JVM.
Q2: Sample.class non viene generato. Qual è la causa?
A: La causa più comune è che il nome del file e il nome della public class non corrispondono.
Se la classe è public class Sample, allora il file deve essere Sample.java.
Q3: Se sto usando un IDE, non ho più bisogno di imparare javac?
A: Gli IDE compilano automaticamente in background, ma se non comprendi il meccanismo, diventa più difficile afferrare cosa sta realmente accadendo.
Sperimentare il flusso base una volta aiuta a comprendere più velocemente il comportamento dell’IDE.
Q4: Quale JDK dovrei installare?
A: Per i principianti, i build LTS di Temurin (Eclipse Adoptium) sono facili da usare.
Se non hai un motivo specifico, scegli Java 17 o 21.
Q5: Ottengo javac: command not found
A: O il JDK non è installato o PATH non è configurato.
Prima esegui javac -version per controllare se è riconosciuto.


