Introduzione

Java e la JVM (Java's Virtual Machine) sono richiesti ed utilizzati da moltissimi softare disponibili per Ubuntu o distribuzioni Unix-like. Questo articolo fornisce una guida pratica per installare e gestire diverse versioni di Java, in particolare la versione 8. La guida considera una versione di Ubuntu superiore alla 16.04 (Xenial Xerus). Sarà necessario utilizzare il classico comando apt-get.

Installare la versione di default

Nei repository ufficiali di Ubuntu sono presenti i pacchetti che contengono Java. In particolare contengono una versione della OpenJDK 8, un'implementazione open-source dell'ambiente Java. Anzitutto è necessario aggiornare la lista dei pacchetti:

$ sudo apt-get update

In seguito è necessario installare Java, in particolare la JRE (Java Runtime Environment).

$ sudo apt-get install default-jre

Esiste un'altra versione di Java chiamata JDK (Java Development Kit), ovvero l'insieme di strumenti necessari per sviluppare applicazioni Java. Questo pacchetto contiene a sua volta la JRE ed è consigliato qualora si abbia la necessità di compilare codice sorgente Java, per esempio per sviluppare o compilare un progetto esistente. Chiaramente quest'ultimo ha un peso su disco maggiore:

$ sudo apt-get install default-jdk

Installare la versione ufficiale di Oracle

Qualora si volesse installare la versione ufficiale di Java distribuita dalla Oracle è necessario aggiungere ai repository un pacchetto esterno tramite un ppa (Personal Package Archive), che in questo caso viene fornito da webupd8.

$ sudo add-apt-repository ppa:webupd8team/java

Aggiornare dunque la lista dei pacchetti:

$ sudo apt-get update

A questo punto è possibile installare sia la JDK 8 che la JDK 9:

$ sudo apt-get install oracle-java8-installer
$ sudo apt-get install oracle-java9-installer

Verificare la corretta installazione

A questo punto per verificare in qualsiasi momento qual'è la versione di Java utilizzata nel sistema operativo basta semplicemente digitare il comando:

$ java -version

L'output dovrebbe essere qualcosa simile a:

openjdk version "1.8_0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

Se il programma java non è stato riconosciuto allora è necessario ripetere gli step visti in precedenza, altrimenti significa che Java è stato installato correttamente nel sistema operativo Ubuntu.

Rimuovere completamente Java

Qualora si volesse rimuovere completamente tutte le installazioni di Java per poter iniziare da un ambiente pulito è necessario affrontare alcuni step:

1. Rimuovere tutti i pacchetti legati a Java (Sun, Oracle, OpenJDK, ...)

$ dpkg-query -W -f='${binary:Package}\n' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e '^java-common' | xargs sudo apt-get -y remove
$ sudo apt-get -y autoremove

2. Rimuovere i file di configurazione:

$ dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge

3. Rimuovere la configurazione Java e la cartella di cache:

$ sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf

4. Rimuovere tutte le JVM (Java Virtual Machine) installate:

$ sudo rm -rf /usr/lib/jvm/*

5. Rimuovere i riferimenti di Java dal database di Ubuntu:

$ for g in ControlPanel java java_vm javaws jcontrol jexec keytool mozilla-javaplugin.so orbd pack200 policytool rmid rmiregistry servertool tnameserv unpack200 appletviewer apt extcheck HtmlConverter idlj jar jarsigner javac javadoc javah javap jconsole jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic schemagen serialver wsgen wsimport xjc xulrunner-1.9-javaplugin.so; do sudo update-alternatives --remove-all $g; done

6. Ricercare tutte le possibili cartelle rimanenti:

$ sudo updatedb
$ sudo locate -b '\pack200'

Conclusioni

Installare Java su Ubuntu è un processo molto facile, che consiste di pochi semplici passaggi. Una volta installato l'ambiente Java sarà possibile eseguire applicazioni che lo richiedono oppure sviluppare le proprie applicazioni. Possibili esempi di software che richiedono Java sono Tomcat, Jetty, Glassfish, Cassandra, Jenkins.