RISOLTO Collegare Visual Studio Code a JDK su Ubuntu

Stato
Discussione chiusa ad ulteriori risposte.

Hero467

Utente Attivo
689
404
OS
I use ARCH btw
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
 

BrutPitt

Utente Attivo
1,166
1,262
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:

Hero467

Utente Attivo
689
404
OS
I use ARCH btw
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.png
 

BrutPitt

Utente Attivo
1,166
1,262
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:

EmanueleC

Utente Èlite
5,636
1,841
CPU
Ryzen 5 2600x
Dissipatore
stock
Scheda Madre
ROG STRIX B450-F GAMING
HDD
OS: WD BLue SN570 500GB, Dati: 1TB Toshiba p300, Game: 2TB Toshiba P300
RAM
Corsair DDR4 3000 Mhz 2x8 GB
GPU
AMD Radeon RX 6600
PSU
Seasonic Focus Gold 450W
Case
BitFenix Neos
OS
Fedora Linux
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.
 

Hero467

Utente Attivo
689
404
OS
I use ARCH btw
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
 
  • Mi piace
Reazioni: GraveKeeper

BrutPitt

Utente Attivo
1,166
1,262
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:

Hero467

Utente Attivo
689
404
OS
I use ARCH btw
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
 
  • Mi piace
Reazioni: BrutPitt

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,546
12,933
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
Disinstalla java ed installalo seguendo questo tutorial
E' una manna dal cielo ed è ultra comodo, anche per gestire più versioni insieme senza avere conflitti
 

Hero467

Utente Attivo
689
404
OS
I use ARCH btw
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?
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,546
12,933
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
se apri il terminale e digiti java -version che ti dice?
 

Hero467

Utente Attivo
689
404
OS
I use ARCH btw
La versione ora. Avevo solo bisogno di riavviare, perché quando l'ho fatto ieri mi dava errore visto che non trovava il jdk
 
  • Mi piace
Reazioni: Moffetta88

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,546
12,933
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
Ottimo!
Ordunque segno come risolto ^_^
 
  • Mi piace
Reazioni: Hero467
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!