Quote Originariamente inviata da misonsan Visualizza il messaggio
Mi rendo conto di fare una riciesta da prima elemntare, ma appunto perchè sto iniziando ad addentrami nel mondo Java e nello specifico
Allora dovresti innanzitutto iniziare a comprendere come funziona Eclipse rispetto ai runtime Java e dove come sono configurabili.

Quindi:

- Un conto è il runtime Java che lancia ed esegue l'IDE Eclipse in sé. Questo viene scelto o da una impostazione esplicita nel eclipse.ini (da fare espressamente, non c'è per default) oppure viene cercato nel "path" (variabile di ambiente PATH) del sistema. Si può avviare Eclipse tanto con un JDK che un JRE.

- Poi ci sono i vari runtime Java configurabili in Eclipse. Li vedi nella configurazione "globale" di Eclipse: menù Window --> Preferences --> sezione Java -> Installed JREs

- Poi c'è la questione degli Execution Environment. Quelle stringhe particolari che hai già visto es. "JavaSE-10". Questi sono nomi standard pensati e noti solo ad Eclipse. "JavaSE-10" da solo non vuol dire proprio nulla di particolare, bisogna "mappare" questo nome ad un runtime Java specifico fisicamente presente.
E questo lo si fa sempre globalmente in Eclipse: menù Window --> Preferences --> sezione Java -> Installed JREs -> Execution Environments
Puoi ad esempio dire che "JavaSE-10" è mappato su un jdk-10.0.2 fisicamente presente (che è un match "perfetto"). Quindi ovunque vedrai "JavaSE-10" è semplicemente un alias per quel JDK specifico. Il vantaggio è che se il progetto si basa su questo nome generico "JavaSE-10" quando poi dovesse uscire il jdk-10.0.3 se lo cambi solo negli Execution Environments, allora nel tuo progetto non cambia nulla (non devi toccare nulla) e continua a funzionare, solo con "sotto" un runtime più aggiornato.
Insomma, questi Execution Environment sono solo delle "indirezioni" verso un runtime specifico.

- Un altro conto è il JDK "compliance" level di un certo progetto. Questo indica la versione di Java usata in compilazione. Per i tipi di progetti "nativi" di Eclipse (quindi non Maven o altro) si può andare direttamente in Proprietà Progetto -> Java Compiler -> riquadro "JDK Compliance". Per un progetto es. Maven, sarebbe meglio configurare source/target level nel pom.xml del progetto.
Se per es. si mette come compliance level 1.7, chiaramente non si potranno usare le nuove belle cose di Java 8 (es. lambda expression, method references, ecc..). E così via ..

- Un altro conto ancora è il runtime Java che esegue un progetto lanciato da Eclipse. Questo lo si configura in una Run Configuration, scheda "JRE". Se hai già lanciato almeno una volta un progetto, ce l'hai di certo, altrimenti la si può creare a mano ma generalmente è più scomodo.
Si può avere es. una compliance level Java 8 ma poi eseguire con un JRE 10.