更改Main类命名空间,移除多余脚本

This commit is contained in:
2026-01-17 17:58:46 +08:00
parent 302b9b6339
commit b332451481
7 changed files with 31 additions and 34 deletions

View File

@@ -23,6 +23,9 @@ java -cp "runtime:libs/*" cc.winboll.Main -v -log:ALL
# 仅输出错误日志
java -cp "runtime:libs/*" cc.winboll.Main -v -log:SEVERE
1Panel Java 环境启动
java -cp "/sdcard/WinBoLLStudio/Sources/AuthCenterConsoleApp/runtime:/sdcard/WinBoLLStudio/Sources/AuthCenterConsoleApp/libs/*" cc.winboll.Main -v -log:ALL
## 程序内使用技巧
// 1. 服务启动时发送通知

View File

@@ -75,8 +75,3 @@ if [ $? -ne 0 ]; then
exit 1
fi
echo -e "\n✅ 编译成功!"
# 5. 启动程序全日志输出到logs目录
echo "------------------------------------------------------------------------"
echo "🚀 启动程序...日志输出至 ${LOG_DIR}/winboll_all.log"
java -cp "${OUT_DIR}:${LIB_DIR}/*" ${MAIN_CLASS} > "${LOG_DIR}/winboll_all.log" 2>&1

View File

@@ -24,7 +24,7 @@ echo "✅ 编译校验通过"
# 3. 类路径+主类配置(核心修正:主类用完整包名,适配目录结构)
CLASSPATH="$BASE_DIR/runtime"
[ -d "$BASE_DIR/libs" ] && CLASSPATH="$CLASSPATH:$BASE_DIR/libs/*"
MAIN_CLASS="cc.winboll.Main"
MAIN_CLASS="Main"
# 4. JVM优化配置适配Termux低内存环境
export _JAVA_OPTIONS="-Xmx128m -Xms64m -Dfile.encoding=UTF-8"

View File

@@ -24,7 +24,7 @@ echo "✅ 编译校验通过"
# 3. 类路径+主类配置(核心修正:主类用完整包名,适配目录结构)
CLASSPATH="$BASE_DIR/runtime"
[ -d "$BASE_DIR/libs" ] && CLASSPATH="$CLASSPATH:$BASE_DIR/libs/*"
MAIN_CLASS="cc.winboll.Main"
MAIN_CLASS="Main"
# 4. JVM优化配置适配Termux低内存环境
export _JAVA_OPTIONS="-Xmx128m -Xms64m -Dfile.encoding=UTF-8"

View File

@@ -1,5 +1,3 @@
package cc.winboll;
import cc.winboll.LogUtils;
import cc.winboll.service.AuthCenterHttpService;
import cc.winboll.util.AdminUtils;
@@ -33,12 +31,11 @@ public class Main {
private static final String CONFIG_KEY_ROOT_DIR = "PROJECT_ROOT_DIR";
private static AuthCenterHttpService httpService;
private static int httpPort;
private static volatile boolean isExit = false;
// ========== 程序入口方法 ==========
public static void main(String[] args) {
LogUtils.d(TAG, "【函数调用】main()AuthCenter程序启动开始执行初始化流程");
isExit = false;
MainUtils.setExit(false);
// 解析启动参数 + 加载INI根配置
MainUtils.parseArgs(args);
@@ -81,7 +78,7 @@ public class Main {
boolean initCheckPass = InitCheckUtils.checkAllInitConfig();
if (!initCheckPass) {
LogUtils.e(TAG, "初始化校验未通过,程序退出");
isExit = true;
MainUtils.setExit(true);
System.exit(1);
}
@@ -133,7 +130,7 @@ public class Main {
String errMsg = "HTTP服务启动失败端口 " + httpPort + " 可能被占用";
System.err.println(errMsg);
LogUtils.e(TAG, "【函数异常】startAuthCenterHttpService()HTTP服务启动失败", e);
isExit = true;
MainUtils.setExit(true);
ConsoleInputUtils.forceExit();
ConsoleInputUtils.closeConsoleScanner();
MainUtils.releaseAllResources(httpService);
@@ -156,11 +153,11 @@ public class Main {
}, "GracefulStop-Hook"));
System.out.println("\n服务已常驻运行输入exit可退出服务或执行kill 对应Java进程号停机");
while (!isExit) {
while (!MainUtils.isExit()) {
try {
boolean needExit = ConsoleInputUtils.checkConsoleCommand();
if (needExit) {
isExit = true;
MainUtils.setExit(true);
LogUtils.i(TAG, "检测到exit指令触发服务正常停机流程");
System.exit(0);
break;
@@ -168,7 +165,7 @@ public class Main {
Thread.sleep(50);
} catch (InterruptedException e) {
LogUtils.w(TAG, "控制台监听线程被中断,触发退出");
isExit = true;
MainUtils.setExit(true);
LogUtils.e(TAG, "【退出详情】监听线程中断退出状态码200线程异常中断");
System.exit(200);
}
@@ -176,13 +173,5 @@ public class Main {
LogUtils.d(TAG, "【函数结束】consoleBlockForService(),常驻阻塞流程退出");
}
// ========== 对外暴露方法 ==========
public static boolean isExit() {
return isExit;
}
public static void setExit(boolean exit) {
isExit = exit;
}
}

View File

@@ -1,7 +1,6 @@
package cc.winboll.util;
import cc.winboll.LogUtils;
import cc.winboll.Main;
import cc.winboll.auth.MailAuthUtils;
import cc.winboll.service.AuthCenterHttpService;
import java.util.Scanner;
@@ -74,12 +73,12 @@ public class ConsoleInputUtils {
*/
public static boolean checkConsoleCommand() {
// 优先判断全局退出状态isExit=true 直接返回退出
if (Main.isExit()) {
if (MainUtils.isExit()) {
return true;
}
if (!isScannerInit || scanner == null) {
LogUtils.w(TAG, "【指令检查】扫描器未初始化,无法监听输入");
return Main.isExit();
return MainUtils.isExit();
}
try {
@@ -123,13 +122,13 @@ public class ConsoleInputUtils {
}
} catch (IllegalStateException e) {
LogUtils.w(TAG, "【指令检查】扫描器已关闭,停止输入监听", e);
Main.setExit(true); // 标记需要退出
MainUtils.setExit(true); // 标记需要退出
} catch (Exception e) {
LogUtils.e(TAG, "【指令检查】输入监听异常,终止服务", e);
Main.setExit(true); // 标记需要退出
MainUtils.setExit(true); // 标记需要退出
}
// 返回全局退出状态,与方法语义完全匹配
return Main.isExit();
return MainUtils.isExit();
}
/**
@@ -177,7 +176,7 @@ public class ConsoleInputUtils {
LogUtils.i(TAG, "HTTP服务已通过优雅停止流程关闭");
}
LogUtils.d(TAG, "【指令处理】执行exit指令标记服务退出状态");
Main.setExit(true);
MainUtils.setExit(true);
System.out.println("\n📢 已接收退出指令,正在执行优雅停止服务...");
System.out.flush();
// 新增日志:验证方法执行到末尾
@@ -241,7 +240,7 @@ public class ConsoleInputUtils {
private static void handleStatusCmd() {
LogUtils.d(TAG, "【指令处理】执行status指令查询服务当前状态");
System.out.println("\n📊 AuthCenter 服务状态信息:");
System.out.println(" 运行状态:" + (Main.isExit() ? "❌ 已停止" : "✅ 运行中"));
System.out.println(" 运行状态:" + (MainUtils.isExit() ? "❌ 已停止" : "✅ 运行中"));
System.out.println(" HTTP服务端口" + MainUtils.getHttpPortFromConfig());
System.out.println(" 日志级别:" + LogUtils.getGlobalLogLevel().getName());
System.out.println(" 服务器地址:" + ServerUtils.getServerUrl());
@@ -351,7 +350,7 @@ public class ConsoleInputUtils {
*/
public static void forceExit() {
LogUtils.w(TAG, "【紧急处理】执行强制退出流程");
Main.setExit(true);
MainUtils.setExit(true);
closeConsoleScanner();
}
}

View File

@@ -22,6 +22,8 @@ public class MainUtils {
public static final String ARG_DETAIL = "detail";
public static final String ARG_LOG_LEVEL = "log";
public static final String ARG_SERVER_URL = "serverUrl";
private static volatile boolean isExit = false;
// 新增:-v 参数常量,控制终端同步输出日志
public static final String ARG_VERBOSE = "v";
@@ -260,5 +262,14 @@ public class MainUtils {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(new Date());
}
// ========== 对外暴露方法 ==========
public static boolean isExit() {
return isExit;
}
public static void setExit(boolean exit) {
isExit = exit;
}
}