让 JFinal 项目在 Windows 下.bat启动拥有清晰窗口标题

在 Windows 系统中通过 .bat 脚本启动多个 JFinal 应用时,CMD 窗口默认标题通常是 C:\Windows\System32\cmd.exe 或脚本路径。当同时运行多个服务(如前台、后台、API、定时任务等),窗口看起来几乎一模一样,极易误关或混淆,严重影响开发与运维效率。

为解决这蛋疼的事儿,可以在 Java 启动阶段自动设置有意义的控制台窗口标题,例如:

JFinal会员系统 1.0.0 - 正在运行 (PID: 12345)

这样每个服务窗口身份一目了然,避免误操作。

实现方式(无需修改 .bat)

在你的 appConfig.java 中加入以下静态初始化代码:

Jfinal配置文件加入代码.png

public class AppConfig extends JFinalConfig {

    ....
    
    /**
     * 项目关闭之前回调
     */
    @Override
    public void onStop() {
		
    }
	
    // >>>>>>>>>>>>>>> 由Java负责设置控制台标题(仅 Windows),内容完全由 Java 控制(支持动态变量、国际化等) <<<<<<<<<<<<<<<<<<<
    static {
        // 设置控制台标题(仅 Windows)
        if (System.getProperty("os.name").toLowerCase().contains("windows")) {
            try {
                String title = "title " + getProjectName() + " " + getProjectVersion() + " - 正在运行 (PID: " + getProcessId() + ")";
                new ProcessBuilder("cmd", "/c", title).inheritIO().start().waitFor();
            } catch (Exception e) {
                // 忽略错误(非 Windows 或无权限)
            }
        }
    }
    
    private static long getProcessId() {
        try {
            String name = java.lang.management.ManagementFactory.getRuntimeMXBean().getName();
            return Long.parseLong(name.split("@")[0]);
        } catch (Exception e) {
            return -1;
        }
    }
    // >>>>>>>>>>>>>>> 由Java负责设置控制台标题(仅 Windows),内容完全由 Java 控制(支持动态变量、国际化等) <<<<<<<<<<<<<<<<<<<
	
    public static void main(String[] args) {
        UndertowServer.create(AppConfig.class,"undertow.properties").start();
    }
}

start.bat文件中在 “@echo off” 后面加入一行 “chcp 65001 >nul” 防止乱码:

jfinal项目win启动bat.png

优势

  • 标题由 Java 控制,支持动态内容(如环境、版本、端口)

  • 无需维护 .bat 文件中的中文(避免编码问题)

  • 自动获取真实进程 ID,便于排查

  • 启动即生效,所有窗口身份清晰

 效果对比

cmd 启动窗口.png


微信截图_20251225010258.png


⚠️ 注意事项

  • 仅适用于 Windows CMD 窗口

  • 若应用以服务方式后台运行(无窗口),此设置无效

  • 标题中的特殊字符(如 &, |)需额外转义,普通中文+数字无需处理


评论区

JFinal

2025-12-25 00:55

挺有创意的方案, windows 系统下跑 jfinal 服务多了,区分出来很有价值

nirvanazc

2025-12-26 13:36

非常棒,已经用上

小徐同学

2025-12-29 15:40

非常棒,已经用上

zeroabc

2025-12-30 17:53

非常棒,已经用上

热门分享

扫码入社