fix(server): 직접 선택한 JDK 도 Java 25+ 검증 후 진행
자동 탐색은 Java 25 미만을 걸렀지만, 사용자가 직접 입력/폴더선택한 JDK 는 버전 검증 없이 다음 단계로 넘어가 run.bat 이 낡은 자바로 패치될 수 있었다. 그러면 서버가 여전히 UnsupportedClassVersionError 로 뜨지 않는다. - jdk:verify IPC 추가(java -version 으로 메이저 버전 확인) + preload 노출. - JDK 단계 "다음" 에서 선택 경로를 검증해 Java 25 미만이거나 버전을 못 읽으면 진행을 막고 안내. 자동 설치/자동 탐색 경로도 이 게이트를 통과. - 버전 0.4.4→0.4.5. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -686,14 +686,37 @@ function renderSubStep32(host, back, done) {
|
||||
if (installing) return
|
||||
back()
|
||||
})
|
||||
nextBtn.addEventListener('click', function () {
|
||||
nextBtn.addEventListener('click', async function () {
|
||||
if (installing) return
|
||||
if (!input.value.trim()) {
|
||||
var val = input.value.trim()
|
||||
if (!val) {
|
||||
msg.textContent = tt('step3.sub32.pathRequired')
|
||||
msg.classList.add('error')
|
||||
return
|
||||
}
|
||||
state.serverInstall.jdk = input.value.trim()
|
||||
// 직접 입력/선택한 JDK 도 서버 실행에 충분한 버전(Java 25+)인지 검증한다.
|
||||
// 너무 낮으면 run.bat 이 그 자바를 써도 UnsupportedClassVersionError 로 서버가 안 뜬다.
|
||||
nextBtn.disabled = true
|
||||
msg.classList.remove('success', 'error')
|
||||
msg.textContent = tt('step3.sub32.verifying')
|
||||
try {
|
||||
var v = await installerApi.verifyJdk(val)
|
||||
if (!v || !v.ok) {
|
||||
msg.classList.add('error')
|
||||
msg.textContent = (v && v.major)
|
||||
? tt('step3.sub32.versionTooLow', { major: v.major, required: (v && v.required) || 25 })
|
||||
: tt('step3.sub32.versionUnknown')
|
||||
nextBtn.disabled = false
|
||||
return
|
||||
}
|
||||
} catch (err) {
|
||||
msg.classList.add('error')
|
||||
msg.textContent = tt('step3.sub32.versionUnknown')
|
||||
nextBtn.disabled = false
|
||||
return
|
||||
}
|
||||
nextBtn.disabled = false
|
||||
state.serverInstall.jdk = val
|
||||
done()
|
||||
})
|
||||
;(async function () {
|
||||
|
||||
Reference in New Issue
Block a user