File tree Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -42,6 +42,10 @@ export async function resolveRequirements(context: ExtensionContext): Promise<Re
4242 let javaHome = javaPreferences . javaHome ;
4343 let javaVersion : number = 0 ;
4444 const REQUIRED_JDK_VERSION = ( 'on' === getJavaConfiguration ( ) . get ( 'jdt.ls.javac.enabled' ) ) ?25 :21 ;
45+ if ( toolingJreVersion < REQUIRED_JDK_VERSION ) { // embedded tooling JRE doesn't meet requirement
46+ toolingJre = null ;
47+ toolingJreVersion = 0 ;
48+ }
4549 if ( javaHome ) {
4650 const source = `${ preferenceName } variable defined in ${ env . appName } settings` ;
4751 javaHome = expandHomeDir ( javaHome ) ;
@@ -79,10 +83,12 @@ export async function resolveRequirements(context: ExtensionContext): Promise<Re
7983 const validJdks = javaRuntimes . filter ( r => r . version . major >= REQUIRED_JDK_VERSION ) ;
8084 if ( validJdks . length > 0 ) {
8185 sortJdksBySource ( validJdks ) ;
82- javaHome = validJdks [ 0 ] . homedir ;
83- javaVersion = validJdks [ 0 ] . version . major ;
84- toolingJre = javaHome ;
85- toolingJreVersion = javaVersion ;
86+ toolingJre = validJdks [ 0 ] . homedir ;
87+ toolingJreVersion = validJdks [ 0 ] . version . major ;
88+ if ( ! javaHome ) { // keep javaHome if set even if it is an older JDK version
89+ javaHome = toolingJre ;
90+ javaVersion = toolingJreVersion ;
91+ }
8692 }
8793 } else { // pick a default project JDK/JRE
8894 /**
You can’t perform that action at this time.
0 commit comments