feat: add java update for linux

This commit is contained in:
lucasdpt
2026-06-17 20:30:01 +02:00
parent 7d57ea0ca9
commit b8204c80bd
+8 -2
View File
@@ -20,6 +20,7 @@ import { emit } from './events'
*/ */
const JAVA_MAJOR = 21 const JAVA_MAJOR = 21
const JAVA_MAX = 21
const MARKER = (): string => join(paths.javaDir, 'managed.json') const MARKER = (): string => join(paths.javaDir, 'managed.json')
/** Exécute `<javaPath> -version` et renvoie la version majeure (ex. 21), ou null. */ /** Exécute `<javaPath> -version` et renvoie la version majeure (ex. 21), ou null. */
@@ -74,7 +75,7 @@ async function findSystemJava(): Promise<string | null> {
for (const c of candidates) { for (const c of candidates) {
if (!existsSync(c)) continue if (!existsSync(c)) continue
const major = await javaMajorVersion(c) const major = await javaMajorVersion(c)
if (major !== null && major >= JAVA_MAJOR) return c if (major !== null && major >= JAVA_MAJOR && major <= JAVA_MAX) return c
} }
return null return null
} }
@@ -147,7 +148,12 @@ export async function ensureJava(): Promise<string> {
if (existsSync(MARKER())) { if (existsSync(MARKER())) {
try { try {
const { javaPath } = JSON.parse(await readFile(MARKER(), 'utf-8')) as { javaPath: string } const { javaPath } = JSON.parse(await readFile(MARKER(), 'utf-8')) as { javaPath: string }
if (javaPath && existsSync(javaPath)) return javaPath if (javaPath && existsSync(javaPath)) {
const major = await javaMajorVersion(javaPath)
if (major !== null && major >= JAVA_MAJOR && major <= JAVA_MAX) return javaPath
// Version hors plage (ex: Java 22+) : invalider le cache et re-détecter
await rm(MARKER(), { force: true })
}
} catch { } catch {
/* marqueur corrompu : on réinstalle */ /* marqueur corrompu : on réinstalle */
} }