feat: add java update for linux
This commit is contained in:
+8
-2
@@ -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 */
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user