Cos’è il comando javac per compilare i file Java

La compilazione dei programmi Java tramite i comandi javac e java

Il comando javac consente di compilare i file java, si tratta del comando che viene eseguito anche dai moderni IDE in un progetto Java per avviare la compilazione del progetto. È di fondamentale importanza, prima di iniziare a programmare in Java, comprendere il funzionamento il meccanismo sottostante che ci consente di compilare ed eseguire i nostri programmi. Gli attuali ambienti di sviluppo (Eclipse, IntelliJ, ecc.) nascondono all’utente il meccanismo della JVM e l’utilizzo dei comandi javac e java.

Il comando javac rappresenta il compilatore di Java e serve per compilare i file .java. In Windows l’eseguibile javac si trova nella JDK installata di Java e per poterlo eseguire occorre indicare il path del javac.exe, ad esempio:

C:\Program Files\Java\jdk1.7.0_51\bin\javac MiaClasse.java

Eventuali classi collegate a MiaClasse.java verranno anche loro compilate e i risultati (i file .class) saranno verranno inseriti nella stessa cartella.

Il comando javac può avere varie opzioni:

  • -classpath per indicare dove si trovano i file class;
  • -sourcepath per specificare dove trovare il file sorgente;
  • -d per indicare in quale directory inserire i bytecode prodotti;
  • -verbose per visualizzare informazioni aggiuntive durante la compilazione.

Qualora il comando non fosse riconosciuto significa che non è stata impostata la variabile d’ambiente:

javac: command not found
"javac" non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch.

Per poter aggiornare la variabile d’ambiente PATH in Windows XP, 7, 8 e 10 bisogna:

  1. Fare click con il tasto destro sull’icona del Computer e scegliere Proprietà;
  2. Nel menù di sinistra scegliere Impostazioni di sistema avanzate;
  3. Dalla finestra Avanzate cliccare su Variabili d’ambiente…;
  4. In Variabili di sistema modificare la variabile PATH aggiungendo il percorso completo della directory bin della JDK istallata (in genere è del tipo C:\Programmi\Java\\bin). In questa directory è contenuto sia il file javac.exe che il file java.exe. Ecco un esempio del valore contenuto nella variabile PATH:
    %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Windows Live\Shared

    Al valore contenuto in PATH aggiungeremo il percorso della cartella bin separandola con un punto e virgola dai valori precedenti, ad esempio con la versione 1.7.0_51:

    %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Windows Live\Shared;C:\Program Files\Java\jdk1.7.0_51\bin

Aggiungendo la cartella bin con javac e java nella variabile PATH siamo in grado di utilizzare questi comandi da qualsiasi cartella, non sarà più necessario specificare il percorso dei file ad ogni compilazione/esecuzione.

javac MiaClasse.java

Il comando java consente di eseguire i file, bisogna eseguire il file principale (che ha il metodo main) con il comando java ricordandoci di non specificare l’estensione, ad esempio:

java MiaClasse

Il comando java avvia la Java Virtual Machine e esegue i bytecode generati in precedenza e memorizzati nei file class. La sintassi completa del comando java è la seguente:

java [-opzioni] classe [-argomenti]

Gli eventuali argomenti passati saranno inseriti nel vettore args del main, mentre le opzioni possono essere:

  • -classpath <classpath>
  • -verbose
  • -version
  • -help/li>

Pubblicato in Guide, Java, Programmazione Taggato con: , , , , ,
One comment on “Cos’è il comando javac per compilare i file Java
  1. Roberto scrive:

    Ottima guida, ho seguito tutto alla lettera ma ancora non mi riconosce il comando.
    Premettendo che il Java installato è il seguente,

    java version “1.8.0_191”
    Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
    Java HotSpot(TM) Client VM (build 25.191-b12, mixed mode, sharing)

    non capisco perchè scarichi l’8 quando l’ultima release è la 11.

    Ho aggiunto il percorso C:\Program Files (x86)\Java\jre1.8.0_191\bin
    nella sezione System Variables (senza punti e virgole e tutto attaccato, parrebbe che ora con Win10 sia tutto più semplice e si possano inserire i percorsi delle cartelle con l’apposito tasto NEW in una tabella ordinata). Dentro la cartella BIN non ho però il file javac come spiega sopra.
    Come fare? sono disperato e poco esperto. Grazie da subito

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*