RISOLTO Collegare Visual Studio Code a JDK su Ubuntu

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

Hero467

Utente Attivo
Messaggi
692
Reazioni
404
Punteggio
74
Salve a tutti,
ho recentemente fatto un'installazione pulita del mio Ubuntu, e ovviamente si sono cancellati tutti i programmi.
Reinstallato VS Code, inizia subito a darmi problemi perché non trova il percorso al JDk, perché ovviamente non l'avevo ancora installato.
Installo allora il pacchetto openjdk-19-jre-headless, e provo a collegarlo, segnalandogli il percorso /usr/lib/jvm/java-19-openjdk-amd64, ma mi dice ripetutamente che quella directory non è un jdk valido. Io non so come fare
 
Per identificare il path del JDK (correntemete selezionato) in Linux (non solo Ubuntu), prova a digitare da terminale:

Bash:
readlink -f $(which java)

P.S.
Funziona solo se java e' gia' configurato/installato.
Ed in caso di piu' jdk (versioni java) installati, restituisce quello attualmente "impostato" o selezionato attraverso: alternatives.
In questo caso puoi verificare/modificare l'impostazione del corrente jdk con:
Bash:
alternatives --config java

Da me, su Fedora (ma i comandi sono identici anche su Ubuntu):

JDK attualmente impostato:
Screenshot at 2022-12-03 15-09-56b.png

JDK alternatives:
Screenshot at 2022-12-03 15-09-56a.png
 
Ultima modifica:
Ho seguito tutto, e ho collegato la directory indicata, ma ancora si rifiuta di riconoscerla. Ho provato sia senza /java sia senza /bin/java

La directory datami è esattamente come la tua, ad eccezione per la versione del jdk che è 19

1670077340928.webp
 
Ho seguito tutto, e ho collegato la directory indicata, ma ancora si rifiuta di riconoscerla. Ho provato sia senza /java sia senza /bin/java

La directory datami è esattamente come la tua, ad eccezione per la versione del jdk che è 19

Non trova JAVA_HOME.
Prova a definire la variabile JAVA_HOME, nell'environment:

Devi modificare il file ~/.bashrc (nella tua "home directory") per dichiarare la suddetta variabile ambiente, e aggiungere il path.

Aggiungi queste due righe nel file.
Bash:
export JAVA_HOME=/usr/lib/jvm/java-19-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

Riavvia il sistema.

Controlla di avere la variabile e il path nell'environment, digitando da terminale:
Bash:
printenv | grep -i java

A questo punto prova a ridare il path a VSCode:
/usr/lib/jvm/java-19-openjdk-amd64


Se cio' non fosse sufficiente...
Apri il file di configurazione di VSCode: settings.json
Lo trovi in ~/.config/Code/User

Oppure da VSCode:
File => Preeference => Settings ... ( o semplicemnte: CTRL+, )
E poi click sulla prima icona in alto a DX: Open Settings (JSON)

Ed al file aggiungi, prima della parentesi graffa "}" finale:
JSON:
"java.home": "/usr/lib/jvm/java-19-openjdk-amd64",
    "java.configuration.runtimes": [
        {
            "name":"JavaSE-19",
            "path": "/usr/lib/jvm/java-19-openjdk-amd64"
        }
    ],
(Occhio alla separazione delle "configurazioni" con la VIRGOLA

Salva... chiudi e riapri VSCode
 
Ultima modifica:
Salve a tutti,
ho recentemente fatto un'installazione pulita del mio Ubuntu, e ovviamente si sono cancellati tutti i programmi.
Reinstallato VS Code, inizia subito a darmi problemi perché non trova il percorso al JDk, perché ovviamente non l'avevo ancora installato.
Installo allora il pacchetto openjdk-19-jre-headless, e provo a collegarlo, segnalandogli il percorso /usr/lib/jvm/java-19-openjdk-amd64, ma mi dice ripetutamente che quella directory non è un jdk valido. Io non so come fare
Se lo hai installato dallo snap store il problema è il pacchetto snap creato da Ubuntu, installa il software non usando snap.
 
Controlla di avere la variabile e il path nell'environment, digitando da terminale:
Bash:
printenv | grep -i java
Non so se debba succedere qualcosa qui, ma il programma non mi da nessun output, ma non mi da neanche nessun errore.

Infatti ho provato, e non funziona.

E neanche con il secondo metodo


Se lo hai installato dallo snap store il problema è il pacchetto snap creato da Ubuntu, installa il software non usando snap.
No, mi sto tenendo alla larga da snap. Vs code installato rigorosamente da pacchetto .deb
 
Non so se debba succedere qualcosa qui, ma il programma non mi da nessun output, ma non mi da neanche nessun errore.
Le hai AGGIUNTE (intendevo alla fine del file)... e non all'inizio?
(visualizza il contenuto file .bashrc)

Per vedere cosa doveva succedere:

Apri un terminale e digitale al prompt:
Bash:
export JAVA_HOME=/usr/lib/jvm/java-19-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

Ed ora prova a fare:
Bash:
printenv | grep -i java

Vedi cosa accade adesso 😉

Adesso se lanci VSCode da quel terminale (col comando: code) ... probabilmente dovrebbe funzionare.


Ora pero' e' importante che quelle DUE righe... funzionino nel file ~/.bashrc (o al limite nel file ~/.bash_profile) ... e che una volta inserite (e riavviato il terminale), producano lo stesso output di quando le digiti da terminale.
In modo che poi VSCode funzioni "ovunque"

Infatti ho provato, e non funziona.


E neanche con il secondo metodo
Il secondo metodo serve SOLO per forzare la configurazione manualmente... ma NON funziona se non c'e' la variabile ambiente configurata.

P.S.
Pero' nel momento in cui ci si cimenta nella programmazione su un sistema operativo... un minimo di conoscenza di base bisognerebbe averlo.
(e.g. come aggiungere le variabili ambiente... cosa sia/serva l'operatore "pipe"... cosa faccia il printenv e/o il comando grep)
Altrimenti saranno sempre "lacrime e sangue" 😅
 
Ultima modifica:
Oooops, me ne sono accorto adesso: la prima volta ho fatto tutta da terminale, senza rendermene conto. Adesso ho messo tutto nel file giusto, ed effettivamente printenv da un output.
Però ancora non funziona, e ho provato la configurazione manuale. Dubbio: non è che vsc non riconosce la versioe 19? Perché quando ho aggiunto "name":"JavaSE-19" non mi dava la 19 come suggerimento, ma si fermava a 18.


P.S.
Pero' nel momento in cui ci si cimenta nella programmazione su un sistema operativo... un minimo di conoscenza di base (e.g. come aggiungere le variabili ambiente... cosa sia/serva l'operatore "pipe"... cosa faccia il printenv e/o il comando grep) bisognerebbe averlo.
Altrimenti saranno sempre "lacrime e sangue" 😅
Avevo aggiunto java_home a path, ma mi ero dimenticato (di nuovo) di farlo sul file, quindi dopo averlo fatto da terminale e aver riavviato ovviamente non era successo nulla
 
Disinstalla java ed installalo seguendo questo tutorial
E' una manna dal cielo ed è ultra comodo, anche per gestire più versioni insieme senza avere conflitti
 
Non avevo visto questa guida. Complimenti, molto ben fatta. Appena finita l'installazione vedo se funziona

EDIT: con VS Code sembra funzionare, ma non mi prende il comando java. Come posso fare per questo?
 
se apri il terminale e digiti java -version che ti dice?
 
La versione ora. Avevo solo bisogno di riavviare, perché quando l'ho fatto ieri mi dava errore visto che non trovava il jdk
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top