Eseguire file jar: semplici istruzioni

by Pramith

L’esecuzione di un file jar è un processo semplice che richiede solo un Java Runtime Environment (JRE) funzionante.

Cosa sono i file JAR e come funziona l’esecuzione

Un file JAR (Java ARchive) è un formato di archivio basato su ZIP e sviluppato appositamente per Java. Raggruppa classi Java, risorse come immagini o file di configurazione, metadati e spesso un file manifest (META-INF/MANIFEST.MF).

  • A differenza dei tradizionali archivi ZIP, i file Jar sono progettati per raggruppare applicazioni Java o librerie in un unico file. Ciò semplifica notevolmente la distribuzione e l’utilizzo di tali applicazioni.
  • Affinché un file Jar possa essere avviato direttamente, deve contenere nel manifesto una cosiddetta Main-Class. Questa voce indica la classe principale dell’applicazione. Se è presente, il file può essere avviato dalla riga di comando inserendo il comando java -jar nomefile.jar.
  • Non tutti i file Jar sono applicazioni autonome: molti fungono da librerie utilizzate in altri progetti.
  • I file Jar sono inoltre compressi, il che li rende solitamente più piccoli della somma dei singoli file che li compongono. Possono essere firmati digitalmente per garantire l’integrità e l’autenticità del contenuto. Le versioni Java più recenti supportano anche i cosiddetti JAR modulari o multi-release, che contengono classi per diverse versioni Java.

Installazione di Java Runtime (JRE / JDK) su Windows, macOS e Linux

Per poter eseguire i file Jar sul proprio sistema, è necessario disporre di un ambiente Java Runtime. In questo capitolo si imparerà come installare Java e a cosa prestare attenzione nelle diverse versioni.

  • Per avviare un file Jar è necessario almeno un ambiente Java Runtime (JRE). Oggi questo è solitamente incluso nel Java Development Kit (JDK). A seconda dell’applicazione, potrebbe essere necessaria una versione specifica, spesso Java 8, 11, 17 o successive.
  • Le versioni con supporto a lungo termine (LTS) come Java 11 o Java 17 sono particolarmente consigliate, poiché vengono aggiornate per molti anni. Assicurati che la versione Java sia compatibile con la tua applicazione, poiché i programmi più vecchi potrebbero essere in parte incompatibili con le versioni più recenti.
  • Installazione su Windows: Scarica l’ultima versione di Java dal sito web ufficiale di Oracle o da una distribuzione OpenJDK (ad esempio Azul Zulu o Eclipse Temurin). Seleziona il file di installazione adatto al tuo sistema (di solito 64 bit) ed esegui il programma di installazione.
  • Dopo l’installazione, potrebbe essere necessario aggiungere la cartella “bin” dell’installazione Java alla variabile di ambiente PATH. Quindi apri il prompt dei comandi e verifica che Java sia stato installato correttamente con il comando java –version.
  • Installazione su macOS: Scarica il file di installazione (DMG o PKG) da Oracle o da una pagina OpenJDK e segui la procedura guidata di installazione. Facoltativamente, è possibile impostare le variabili d’ambiente Java con i comandi export JAVA_HOME=$(/usr/libexec/java_home) export PATH=$JAVA_HOME/bin:$PATH nella shell (ad es. zsh).
  • Su macOS, Java può essere facilmente installato anche tramite Homebrew, digitando nel terminale: brew install java
  • Installazione su Linux (ad es. Ubuntu o Debian): Molte distribuzioni Linux offrono già Java nei loro repository. Verificate con java –version se Java è installato. In caso contrario, potete installare un ambiente di runtime aggiornato, ad esempio con sudo apt install openjdk-17-jre . In alternativa, è possibile scaricare e configurare manualmente il JDK dal sito web OpenJDK.

    Sicurezza e ricerca degli errori durante l’esecuzione dei file JAR

    I file JAR sono pratici, ma comportano anche alcuni rischi. Di seguito troverete informazioni su come eseguire i file JAR in modo sicuro e cosa fare in caso di messaggi di errore o problemi.

    • Avvertenze di sicurezza: Eseguite solo file Jar provenienti da fonti affidabili. I file provenienti da fonti sconosciute o non sicure possono contenere codice dannoso che mette a rischio il vostro sistema. Gli sviluppatori affidabili forniscono solitamente checksum o firme digitali che consentono di verificare l’autenticità di un file Jar.
    • Se si desidera esaminare più da vicino un file Jar, è possibile aprirlo o decomprimerlo con i comuni programmi ZIP. Anche strumenti speciali come “OWASP Dependency-Check” aiutano a identificare le vulnerabilità note nelle librerie contenute. Per la massima sicurezza, si consiglia di testare prima i file Jar sconosciuti in una macchina virtuale o in un ambiente isolato.
    • Risoluzione dei problemi (troubleshooting): Se un file Jar non si avvia, di solito c’è una ragione chiara. Le cause più comuni sono:
    • Voce Main Class mancante: In questo caso, spesso viene visualizzato il messaggio “no main manifest attribute”. Il manifesto deve quindi essere modificato manualmente o il JAR deve essere ricreato.
    • Dipendenze mancanti: se all’avvio si verifica un “ClassNotFoundException” o un “NoClassDefFoundError”, spesso mancano librerie aggiuntive. Queste devono essere aggiunte al percorso di classe o integrate correttamente.
    • Versione Java incompatibile: un’applicazione compilata con Java 17 potrebbe non funzionare con Java 8. Verificate quale versione è richiesta dall’applicazione e adattate il vostro runtime di conseguenza.
    • Errore nel manifesto: il contenuto del manifesto può essere visualizzato con il comando jar xf nomefile.jar META-INF/MANIFEST.MF

      e successivamente cat META-INF/MANIFEST.MF . Qui dovrebbero essere presenti voci come “Main-Class” e “Class-Path”.

    • Leggi attentamente i messaggi di errore: di solito contengono indicazioni preziose sui file mancanti o sui percorsi errati.

    Esempi pratici e strumenti utili

    Per concludere, ecco alcuni esempi pratici e strumenti che vi faciliteranno il lavoro quotidiano con i file jar.

    • Esempio di avvio di un’applicazione: Se il vostro file si chiama “miaApp.jar” e contiene una classe principale eseguibile, avviatelo con il comando java -jar miaApp.jar
    • Se sono necessarie librerie aggiuntive che si trovano in una sottocartella “lib”, l’applicazione può essere avviata con il percorso di classe, ad esempio in questo modo: java -cp “miaApp.jar:lib/*” com.esempio.classe principale
    • Aprire o decomprimere i file jar: Poiché i file jar sono compatibili con ZIP, possono essere decompressi con programmi comuni come 7-Zip, WinRAR o tramite la riga di comando. Su Linux o macOS, ad esempio, è possibile farlo con unzip nomefile.jar -d cartella_di_destinazione o, per visualizzare solo il contenuto, con jar tf nomefile.jar
    • Strumenti di analisi e sicurezza: Per il controllo della sicurezza è possibile utilizzare strumenti come “OWASP Dependency-Check”. Ciò consente di analizzare le dipendenze all’interno di un file Jar e di identificare le vulnerabilità note.
    • Casi d’uso tipici: I file Jar vengono utilizzati in molti settori, dai programmi desktop alle librerie, fino alle applicazioni server o cloud. Sono particolarmente pratici se si desidera distribuire un’applicazione Java in modo compatto o raggruppare più moduli in un unico file.
     

    Related Articles

    Leave a Comment