# Java/Procurarsi il JDK

Java
Copertina Tutti i moduli · Sviluppo
    CopertinaJava/Copertina
* Guida alla programmazione
** IntroduzioneJava/Introduzione
** Procurarsi il JDKJava/Procurarsi il JDK
** Dal sorgente all'esecuzioneJava/Dal sorgente all'esecuzione
** Il linguaggioJava/Il linguaggio
** Programmazione ad oggettiJava/Programmazione ad oggetti
** JavadocJava/Javadoc
** EserciziJava/Esercizi
** La macchina virtualeJava/La macchina virtuale
** Errori e mitiJava/Errori e miti
** Trucchi e consigliJava/Trucchi e consigli
* Specifica di linguaggio
** Tipi di datoJava/Tipi di dato
** Concetti fondamentaliJava/Concetti fondamentali
** OperatoriJava/Operatori
** Variabili localiJava/Variabili locali
** IstruzioniJava/Istruzioni
** Strutture di controlloJava/Strutture di controllo
** PackageJava/Package
** Classi e oggettiJava/Classi e oggetti
** OggettiJava/Oggetti
** MetodiJava/Metodi
** metodi (seconda parte)Java/Metodi/2
** ArrayJava/Array
** Modificatori di accessoJava/Modificatori di accesso
** EreditarietàJava/Ereditarietà
** Gestione delle eccezioniJava/Gestione delle eccezioni
** GenericsJava/Generics
** LessicoJava/Lessico
** GrammaticaJava/Grammatica
* Libreria standard
** Comunicazione serialeJava/Comunicazione seriale
** Stream
** Input e outputJava/Input e output
** Collections
** AWT e SwingJava/AWT e Swing
** Reflection
** SerializzazioneJava/Serializzazione
** SocketJava/Socket
* Argomenti avanzati
** MultithreadingJava/Multithreading
** Interblocco ricontrollatoJava/Interblocco ricontrollato
Modifica il sommario
Questo modulo spiega come dotarsi degli strumenti di sviluppo. Gli strumenti necessari sono un compilatore e una macchina virtuale. Gli strumenti facoltativi usati più di frequente sono:
* un editor di testo, eventualmente con funzionalità di modifica avanzate specifiche per modificare il codice sorgente (IDE, Integrated Development Environment)
* un tool che generi la documentazione delle classi
* un tool per creare e aggiornare gli archivi JAR
* un tool per decompilare
* un tool per creare gli header C per le classi con metodi nativi
Eccetto il primo, tutti sono presenti nel cosiddetto JDK, ovvero Java Development Kit (in italiano: kit di sviluppo per Java).

## Procurarsi il JDK

In base al sistema operativo che viene usato, la procedura per l'installazione del JDK è diverso.

### Windows

Il Java Software Development Kit (SDK) contiene tutti gli strumenti necessari per compilare ed eseguire programma Java ed è disponibile online: si può scaricare qui.
Una volta scaricato il file, è necessario installarlo: il processo di installazione è semplice e bisogna semplicemente seguire l'installazione guidata.

### Linux

Il JDK per Linux può essere ottenuto dal sito di Oracle allo stesso indirizzo a cui è possibile trovare quello per Windows; altrimenti è possibile usare file RPM o DEB nelle relative distribuzioni, con l'apposito programma.
Se si usa la distribuzione Ubuntu, è possibile aggiungere dei Personal Package Archives (PPA) che contengono del software non standard. Uno di questi PPA rende possibile l'installazione e l'aggiornamento automatici dello JDK di Oracle.

## PATH e CLASSPATH

Per poter lanciare il compilatore e la macchina virtuale da terminale, bisogna informare il sistema operativo della loro posizione sul file system. Questa può essere indicata in tre modi:
* cambiando la directory corrente nella directory /bin del JDK o JRE, dopodiché digitando javac o java;
* scrivendo il percorso del file (per es. /java/jdk1.8.0_121/bin/javac);
* aggiungendo, in fondo alla variabile d'ambiente PATH, il percorso della cartella "bin" del JDK (ad es., su Windows è di default C:\Programmi\Java\jdk1.8.0_121\bin).
Inoltre, il compilatore e la macchina virtuale Java hanno bisogno di conoscere il percorso dei file che costituiscono il codice del programma. Questi file possono essere specificati in due modi:
* alla riga di comando, servendosi dell'opzione -classpath o -cp;
* impostando la variabile d'ambiente CLASSPATH.
Nel caso del compilatore, il CLASSPATH viene scansionato alla ricerca di directory che contengano il codice sorgente; nel caso della macchina virtuale, il CLASSPATH viene scansionato alla ricerca di file che contengano bytecode.

### Come aggiungere un percorso ad una variabile d'ambiente

Su Windows: aprire Pannello di controllo - Sistema - Avanzate - Variabili d'ambiente. Alla voce che corrisponde alla variabile di interesse, aggiungere il path desiderato, avendo cura di separarlo dai percorsi precedenti con un ";".
Su Linux: su shell Bash, eseguire il comando:
dove al posto di PATH e di $PATH si indica la variabile di interesse, e al posto di percorso si scrive il percorso desiderato.

## Dotarsi di un buon IDE

Oltre al Java Development Kit, per programmare con comodità, è consigliabile installare un buon ambiente di sviluppo integrato (Integrated Development Environment).
Le opzioni possibili in questo caso sono:
* Eclipse: inizialmente sviluppato da IBM, attualmente è mantenuto dalla Eclipse foundation. Ha tantissimi plugin che gli permettono di avere tantissime funzionalità;
* NetBeans: è lo strumento che viene sviluppato da Oracle, la stessa società che sta sviluppando Java:
* IntelliJ: è l'unico a pagamento all'interno di questa lista, ma ha delle funzionalità avanzate, che possono giustificare la spesa.