更改Main类命名空间,移除多余脚本
This commit is contained in:
@@ -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. 服务启动时发送通知
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user