Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 97f8cb2

Browse files
LeducNicdatho7561
authored andcommitted
Fix bug#4226 : auto-detection of JDK
Use the JDK found with jdk-utils if the embedded JDK does not meet the requirement
1 parent c73f944 commit 97f8cb2

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/requirements.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff 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
/**

0 commit comments

Comments
 (0)