love317baby 發表於 2025-12-28 21:30

無法登入 求大神解答 謝謝

點開啟動器 編輯內容



@echo off

call :colors 17
Title 版本458512-天堂 [啟動時間]: %date% %time:~0,8%
cls

set JAVA_HOME=D:\381古龍天堂\jdk1.8.0_20
set CLASSPATH=.;%JAVA_HOME%\lib;
set PATH=%JAVA_HOME%\bin;
set ZJ_HOME=D:\381古龍天堂\jdk1.8.0_20\jdk-1

goto begin

:noupdate
echo 檢查核心更新
goto endud

:ifupdate
IF EXIST update\381server.jar goto movezip
IF NOT EXIST update\381server.jar goto noupdate

:movezip
del 381server.jar
move /Y update\381server.jar 381server.jar

echo 更新核心成功
goto endud

:begin

goto ifupdate

:endud

start /abovenormal /b /wait %JAVA_HOME%\bin\java -agentpath:%ZJ_HOME%\jvmlib.dll -Xoptimize -Xms8g -Xmx8g -Xmn2024m -XX:+UseConcMarkSweepGC -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -cp 381server.jar com.lineage.Server

:restart
New_381啟動.bat



點後畫面出現這個 請問ˋ有大神能提點問題嗎 謝謝

yasioukon 發表於 2025-12-28 22:30

把 D:\381古龍天堂\jdk1.8.0_20 這個路徑

改成你自己灌JAVA的位置

不然就是把同版本JAVA灌到你設定的地方

esdion 發表於 2025-12-30 23:59

@echo off
chcp 950 >nul 2>&1:: 切換至繁體中文編碼(Big5),避免亂碼
setlocal enabledelayedexpansion:: 啟用延遲變數擴充

:: ===================== 設定區(請根據實際路徑修改)=====================
set "TARGET_JDK_VERSION=1.8":: 目標Java版本(天堂服務端通常依賴1.8)
set "PREFERRED_JAVA_PATH=D:\381古龍天堂\jdk1.8.0_20":: 優先使用的Java路徑
set "ZJ_HOME=D:\381古龍天堂\jdk1.8.0_20\jdk-1"
set "SERVER_JAR=381server.jar"
set "UPDATE_DIR=update"
set "RESTART_BAT=New_381啟動.bat"
set "TITLE_SUFFIX=版本458512-天堂"

:: ===================== 視窗配置 =====================
:colors
color %1 >nul 2>&1 || color 0A:: 若參數無效,預設黑底綠字
Title %TITLE_SUFFIX% [啟動時間]: %date% %time:~0,8%
cls
goto :eof:: 結束標籤呼叫

:: ===================== 自動搜尋Java環境 =====================
echo [資訊] 開始偵測Java環境(目標版本:%TARGET_JDK_VERSION%)...

:: 第一步:檢查優先路徑
if exist "%PREFERRED_JAVA_PATH%\bin\java.exe" (
    set "JAVA_HOME=%PREFERRED_JAVA_PATH%"
    echo [成功] 優先路徑偵測到Java:%JAVA_HOME%
    goto :java_check_success
)

:: 第二步:從登錄檔搜尋已安裝的JDK 1.8(32/64位元)
set "JAVA_REG_PATH=HKLM\SOFTWARE\JavaSoft\JDK"
set "JAVA_HOME="
for /f "tokens=2*" %%a in ('reg query "%JAVA_REG_PATH%" /s /f "JavaHome" 2^>nul ^| findstr /i "JavaHome"') do (
    set "REG_JAVA_HOME=%%b"
    :: 驗證版本是否為1.8
    for /f "tokens=3" %%v in ('"!REG_JAVA_HOME!\bin\java.exe" -version 2^>^&1 ^| findstr /i "version"') do (
      set "JAVA_VER=%%v"
      set "JAVA_VER=!JAVA_VER:"=!":: 移除版本號引號
      if "!JAVA_VER:~0,3!"=="%TARGET_JDK_VERSION%" (
            set "JAVA_HOME=!REG_JAVA_HOME!"
            goto :java_reg_found
      )
    )
)
:java_reg_found
if defined JAVA_HOME (
    echo [成功] 登錄檔偵測到Java %TARGET_JDK_VERSION%:%JAVA_HOME%
    goto :java_check_success
)

:: 第三步:全域搜尋java.exe(最後兜底方案)
echo [資訊] 登錄檔未找到,開始全域搜尋Java...
for /f "delims=" %%a in ('where /r C:\ java.exe 2^>nul ^| findstr /i "jdk1.8"') do (
    set "JAVA_EXE=%%a"
    set "JAVA_HOME=!JAVA_EXE:\bin\java.exe=!"
    :: 驗證版本
    for /f "tokens=3" %%v in ('"!JAVA_EXE!" -version 2^>^&1 ^| findstr /i "version"') do (
      set "JAVA_VER=%%v"
      set "JAVA_VER=!JAVA_VER:"=!"
      if "!JAVA_VER:~0,3!"=="%TARGET_JDK_VERSION%" (
            echo [成功] 全域搜尋到Java %TARGET_JDK_VERSION%:!JAVA_HOME!
            goto :java_check_success
      )
    )
)

:: 未找到Java的處理
echo [錯誤] 未偵測到Java %TARGET_JDK_VERSION%,請手動安裝或配置路徑!
pause
exit /b 1

:java_check_success
:: 最終驗證java.exe是否存在
if not exist "%JAVA_HOME%\bin\java.exe" (
    echo [錯誤] Java路徑無效:%JAVA_HOME%
    pause
    exit /b 1
)

:: ===================== 顏色與標題設定 =====================
call :colors 17

:: ===================== 核心更新檢查 =====================
echo [資訊] 檢查核心更新...
if exist "%UPDATE_DIR%\%SERVER_JAR%" (
    echo [資訊] 發現更新包,開始替換...
    del /f /q "%SERVER_JAR%" >nul 2>&1:: 強制刪除舊檔案
    move /y "%UPDATE_DIR%\%SERVER_JAR%" "%SERVER_JAR%" >nul 2>&1
    if exist "%SERVER_JAR%" (
      echo [成功] 更新核心成功!
      del /f /q "%UPDATE_DIR%\%SERVER_JAR%" >nul 2>&1:: 清理更新包
    ) else (
      echo [錯誤] 更新核心失敗!
      pause
      exit /b 1
    )
) else (
    echo [資訊] 無核心更新,使用當前版本...
)

:: ===================== 啟動服務端 =====================
echo [資訊] 啟動天堂服務端...
echo [資訊] JVM參數:-Xms8g -Xmx8g -Xmn2024m -XX:+UseConcMarkSweepGC...
start "" /abovenormal /wait "%JAVA_HOME%\bin\java.exe" ^
    -agentpath:"%ZJ_HOME%\jvmlib.dll" ^
    -Xoptimize ^
    -Xms8g -Xmx8g -Xmn2024m ^
    -XX:+UseConcMarkSweepGC ^
    -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m ^
    -cp "%SERVER_JAR%" com.lineage.Server

:: ===================== 重啟邏輯 =====================
echo [資訊] 服務端程序退出,準備重啟...
timeout /t 5 /nobreak >nul:: 延遲5秒重啟,避免過度頻繁重啟
if exist "%RESTART_BAT%" (
    call "%RESTART_BAT%":: 呼叫重啟腳本
) else (
    echo [錯誤] 重啟腳本不存在:%RESTART_BAT%
    pause
    exit /b 1
)

endlocal
頁: [1]
查看完整版本: 無法登入 求大神解答 謝謝