1 24/05/2026 9 min

Oracle SQL Developer su Ubuntu 20.04 e 22.04 non si installa come un normale pacchetto APT: conviene trattarlo come applicazione Java autonoma, con un JDK coerente e un avvio controllato. Il punto non è solo farla partire, ma evitare i classici problemi di librerie mancanti, versioni Java incompatibili e percorsi sballati dopo un aggiornamento del sistema.

Su Ubuntu recente la strada più pulita è questa: installi un JDK supportato, scarichi l’archivio ufficiale di SQL Developer, lo posizioni in una directory stabile e lo avvii con il binario corretto. Se vuoi una soluzione ripetibile, aggiungi anche un collegamento nel menu applicazioni. Se vuoi una versione più robusta da usare in team o su più workstation, conviene standardizzare percorso, versione Java e profilo utente.

Prerequisiti reali: Java prima di SQL Developer

SQL Developer dipende da Java. Qui sta il primo errore tipico: scaricare l’app, estrarla e provare ad avviarla senza verificare quale JDK sia presente nel sistema. Su Ubuntu 20.04 e 22.04 la scelta più semplice è OpenJDK 11 o 17, a seconda della versione di SQL Developer che stai usando. In pratica, prima controlli il runtime, poi installi il client.

Verifica la situazione attuale con questi comandi:

java -version
which java
update-alternatives --display java

Se il sistema non ha Java, oppure se il comando punta a una versione troppo vecchia o non compatibile, installa un JDK supportato. In molti casi va bene:

sudo apt update
sudo apt install openjdk-17-jdk

Per alcune release di SQL Developer può essere sufficiente anche OpenJDK 11. Se hai dubbi, controlla i requisiti della build specifica che stai per scaricare. Il punto operativo è questo: non dare per scontato che “Java c’è già” significhi “Java è quello giusto”.

Download della versione corretta e verifica del pacchetto

Scarica SQL Developer dal sito Oracle usando il pacchetto Linux in formato ZIP. Evita archivi trovati a caso in mirror non ufficiali: qui non stai installando un tool generico, ma un client che tocca credenziali, connessioni e spesso ambienti di lavoro sensibili.

Dopo il download, verifica che il file sia quello giusto e che l’estrazione sia pulita. Una struttura tipica contiene una directory con lo script di avvio e i file dell’applicazione. Se il pacchetto è corrotto o incompleto, il problema emerge subito in fase di launch o con schermata vuota.

cd ~/Downloads
ls -lh sqldeveloper-*.zip
unzip -t sqldeveloper-*.zip

Se il test dell’archivio fallisce, non andare oltre: riscarica il file. È una verifica banale, ma ti evita di sprecare tempo su errori che sembrano di Java e in realtà sono semplicemente un archive danneggiato.

Installazione manuale in una directory stabile

Su Ubuntu conviene collocare SQL Developer in un path stabile, ad esempio sotto /opt. In questo modo non dipendi dalla home dell’utente che ha fatto il download e non rompi nulla quando cambi account o ripulisci la cartella Downloads.

Procedura tipica:

sudo mkdir -p /opt/sqldeveloper
sudo unzip sqldeveloper-*.zip -d /opt/sqldeveloper

Dopo l’estrazione, individua la directory effettiva dell’applicazione. A seconda del pacchetto, il contenuto può finire in un sottopercorso con il nome della release. Cerca lo script di avvio:

find /opt/sqldeveloper -type f \( -name sqldeveloper -o -name sqldeveloper.sh \)

Se trovi lo script, verifica i permessi. In alcuni casi l’eseguibile non è marcato correttamente dopo l’estrazione:

chmod +x /opt/sqldeveloper/**/sqldeveloper

Se il pattern glob non viene espanso dalla shell, entra prima nella directory corretta e applica il permesso al file esatto. L’obiettivo è semplice: il binario deve essere eseguibile dall’utente che lancerà l’app.

Primo avvio e scelta del JDK

Al primo avvio SQL Developer può chiederti il percorso del JDK. Non saltare questo passaggio: è il momento in cui allinei l’app alla JVM installata sul sistema. Su Ubuntu 22.04, ad esempio, un percorso frequente è /usr/lib/jvm/java-17-openjdk-amd64. Su 20.04 potresti avere una struttura simile ma con Java 11.

Avvia l’app dallo script corretto. Esempio generico:

/opt/sqldeveloper/sqldeveloper/sqldeveloper

Se compare una finestra per la configurazione Java, indica il path del JDK e non un JRE minimale. Il comportamento più stabile si ottiene con un JDK completo, perché alcune funzioni dell’app e alcune librerie accessorie si aspettano componenti presenti solo nel package di sviluppo.

Se vuoi forzare il runtime senza passare dalla GUI, puoi esportare la variabile JAVA_HOME nella sessione o nel file di avvio. Esempio:

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH="$JAVA_HOME/bin:$PATH"
/opt/sqldeveloper/sqldeveloper/sqldeveloper

Questa tecnica è utile quando vuoi testare rapidamente un’altra JVM senza toccare la configurazione globale. Se funziona con una versione e non con un’altra, hai già un indizio preciso sul problema.

Creare un avvio pulito con desktop entry

Per un uso quotidiano conviene creare una voce nel menu applicazioni. È un passaggio semplice, ma evita di aprire terminale ogni volta. Inoltre ti permette di controllare il comando di avvio in modo esplicito, utile quando devi assistere altri utenti o standardizzare l’ambiente.

Crea un file come ~/.local/share/applications/sqldeveloper.desktop con contenuto simile a questo:

[Desktop Entry]
Version=1.0
Type=Application
Name=Oracle SQL Developer
Comment=Oracle SQL Developer for database management
Exec=/opt/sqldeveloper/sqldeveloper/sqldeveloper
Icon=/opt/sqldeveloper/sqldeveloper/icon.png
Terminal=false
Categories=Development;Database;

Se l’icona non esiste nel path indicato, il menu mostrerà un’entry senza immagine o con icona generica. Non è un problema funzionale. Se vuoi rifinire l’integrazione, cerca il file immagine dentro la directory estratta e aggiorna il campo Icon.

Dopo aver salvato il file, aggiorna il desktop database oppure effettua logout/login se l’ambiente grafico non vede subito la nuova voce.

Gestire i problemi più comuni su Ubuntu 20.04 e 22.04

Qui si giocano quasi tutti i casi di assistenza. Quando SQL Developer non parte, la tentazione è rifare l’installazione. In realtà, nella maggior parte dei casi il problema è uno di questi: Java non coerente, librerie grafiche mancanti, permessi errati o cache utente corrotta.

Se l’app non si apre e non compare nulla, lancia lo script da terminale e guarda l’errore. È la prima cosa da fare, non l’ultima:

/opt/sqldeveloper/sqldeveloper/sqldeveloper

Se vedi messaggi su librerie mancanti, su Ubuntu spesso si risolve installando dipendenze grafiche o di compatibilità. Non è raro che un client Java richieda componenti come GTK, font o librerie X11. Un controllo utile è:

ldd /opt/sqldeveloper/sqldeveloper/sqldeveloper | grep "not found"

Se il comando mostra dipendenze non trovate, hai il punto esatto da correggere. Non procedere per tentativi ciechi: identifica il pacchetto mancante e installalo in modo mirato.

Se invece l’app si avvia ma la finestra resta bianca o si blocca all’apertura, prova a rinominare la cache dell’utente. SQL Developer conserva impostazioni nel profilo, spesso sotto ~/.sqldeveloper o directory simili. Una cache corrotta può impedire l’avvio corretto anche quando Java è perfetto.

mv ~/.sqldeveloper ~/.sqldeveloper.backup.$(date +%F)

Questa è una modifica reversibile: se perdi preferenze o connessioni salvate, puoi recuperare i file dalla copia rinominata. È un test pratico per distinguere un problema di runtime da un problema di profilo utente.

Integrazione con driver Oracle e altre connessioni

SQL Developer non serve solo ad aprire connessioni locali. Nella pratica lo usi per database Oracle remoti, e spesso anche per altri DB compatibili tramite driver JDBC. Il punto delicato è la gestione dei driver: non dare per scontato che il client includa tutto o che il driver sia già pronto nel formato giusto.

Per Oracle Database, in molti casi è sufficiente configurare una connessione con host, porta, service name o SID. Se usi file TNS, verifica che il percorso sia corretto e che il client legga davvero il file. Un errore classico è puntare a una directory con permessi sbagliati o con un tnsnames.ora non aggiornato.

Se devi usare un driver JDBC esterno, importa il file jar dal menu dei driver. La verifica pratica è semplice: la connessione deve apparire disponibile e deve autenticarsi senza errori di classe mancante. Se compare un messaggio su ClassNotFoundException, il driver non è stato caricato nel punto giusto.

Perché conviene evitare installazioni improvvisate

Su una workstation amministrativa o su un PC di supporto, SQL Developer tende a rimanere installato a lungo. Per questo conviene impostarlo bene subito: directory stabile, JDK esplicito, desktop entry e una procedura di ripristino chiara. Il costo di mezz’ora in più all’inizio è inferiore al tempo perso quando, dopo un aggiornamento di Ubuntu, il client smette di avviarsi perché puntava a un path temporaneo o a una Java vecchia.

Se lavori in team, documenta anche la versione esatta dell’app e del JDK usato. Non serve un trattato: bastano due righe nel ticket o nel runbook interno con path, release e comando di avvio. Questa è la differenza tra una postazione che funziona per caso e una configurazione che si può replicare.

Procedura rapida consigliata

Se vuoi una sequenza sintetica e affidabile, questa è quella che userei in produzione su una macchina Ubuntu 20.04 o 22.04:

  1. Verifica Java con java -version e installa un JDK supportato se manca o non è coerente.
  2. Scarica il ZIP ufficiale di SQL Developer e controlla l’integrità con unzip -t.
  3. Estrai il pacchetto in /opt/sqldeveloper o in una directory stabile equivalente.
  4. Rendi eseguibile lo script di avvio e lancialo da terminale per leggere eventuali errori.
  5. Se richiesto, imposta il path del JDK corretto o esporta JAVA_HOME.
  6. Crea una desktop entry per l’uso quotidiano e verifica che l’icona e il comando siano corretti.
  7. Se l’app si apre ma si comporta male, isola il problema rinominando la cache utente prima di cambiare altro.

Con questa sequenza riduci il rischio di confondere un problema di installazione con un problema di configurazione del profilo o di compatibilità Java. È il modo più pulito per arrivare a un’installazione che resta stabile nel tempo, anche dopo aggiornamenti del sistema o cambio di utente.

Controllo finale

Una volta completata l’installazione, il test minimo non è “si apre la finestra”, ma “si apre, conserva il profilo e riesce a creare una connessione di prova”. Se la GUI parte ma la connessione fallisce, il problema non è più l’installazione: è lato rete, credenziali, driver o endpoint database.

Per un check rapido, apri una connessione a un database noto e verifica che il test sia coerente con i dati inseriti. Se l’errore è immediato, leggi il messaggio completo prima di cambiare parametri a caso. Nel caso di Oracle SQL Developer, i dettagli dell’errore sono spesso abbastanza specifici da indirizzarti subito su listener, service name, autenticazione o driver.

In sintesi: su Ubuntu 20.04 e 22.04 SQL Developer funziona bene quando lo tratti come applicazione Java gestita, non come pacchetto “da cliccare e basta”. La differenza la fanno la versione del JDK, il path stabile, la verifica dell’archivio e la disciplina nel leggere i log al primo avvio.