Vue3+Vite 与 Java 项目在 Windows 下的后台自启动及静默运行方案
实现本地服务自动运行与开机延迟启动策略
本文介绍如何将基于 Vue3 + Vite 构建的前端项目和基于 Spring Boot 的 Java 后端服务部署为本地服务器,并通过脚本实现无感启动、隐藏命令行窗口以及延迟自启功能。
Vue3 + Vite 前端项目配置
确保项目已正确打包并可通过预览模式运行:
{
"scripts": {
"preview": "vite preview"
}
}
执行构建命令生成静态资源:
npm run build
输出文件默认位于 dist 目录。可在本地测试预览服务是否正常:
npm run preview
若需在服务启动时自动打开浏览器,可在 vite.config.ts 中配置:
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import { fileURLToPath, URL } from 'url';
export default defineConfig({
plugins: [vue()],
base: './',
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
},
server: {
open: true
},
preview: {
open: false
}
});
创建启动批处理脚本(.bat)
在任意目录新建文本文件,例如命名为 start_vue_site.txt,输入以下内容:
@echo off
cd /d D:\my-site
call npm run preview
exit
将路径 D:\my-site 替换为实际项目根目录。保存后重命名为 start_vue_site.bat。双击运行可验证是否成功启动服务。
隐藏命令行窗口(使用 .vbs 脚本)
为了不显示黑窗体,创建 VBScript 封装调用:
新建 launch_hidden.txt,写入:
CreateObject("WScript.Shell").Run "D:\APersonal\StartBat\start_vue_site.bat", 0, True
修改路径指向真实的 .bat 文件位置,保存并重命名为 launch_hidden.vbs。双击该文件即可静默启动服务。
设置延迟自启动(使用任务计划程序)
避免系统开机时立即加载影响性能,推荐使用"任务计划程序"实现延迟启动:
- 在开始菜单搜索并打开【任务计划程序】。
- 点击"创建任务",填写名称如 Launch Vue Site。
- 切换到"触发器"选项卡 → 新建 → 选择"登录时"或"系统启动时"。
- 勾选"延迟任务"并设置等待时间(如5分钟)。
- 在"操作"选项卡中新建,动作为"启动程序",选择上面创建的
launch_hidden.vbs路径。 - 保存任务。
注意:无需再将脚本放入"启动"文件夹,防止重复运行。
停止服务脚本
由于 Vite 使用 Node.js 运行,可通过结束进程终止服务:
新建 stop_vue_site.txt,内容如下:
@echo off
taskkill /IM node.exe /F
exit
保存为 stop_vue_site.bat 即可一键关闭所有 Node 服务(请谨慎使用,可能影响其他应用)。
Java 后端项目部署与自启
以 Maven 打包的 Spring Boot 应用为例,使用 IDEA 成功打包后,在 target 目录下得到可执行 JAR 文件,如:my-site-0.0.1-SNAPSHOT.jar。
创建 Java 启动脚本
新建 start_java_app.txt:
@echo off
cd /d D:\my-site-java\target
java -jar my-site-0.0.1-SNAPSHOT.jar
替换路径与 JAR 名称后保存为 start_java_app.bat。双击测试服务能否正常启动。
静默运行 Java 程序
同样使用 VBScript 隐藏窗口:
CreateObject("WScript.Shell").Run "D:\APersonal\StartBat\start_java_app.bat", 0, True
保存为 run_java_hidden.vbs。
配置延迟自启动
步骤同上,在"任务计划程序"中创建新任务,指定触发时间为系统启动后延迟执行,操作为运行该 .vbs 文件。
精准关闭 Java 服务
避免误杀其他 Java 进程,应根据 JAR 名称定位 PID 并关闭:
新建 stop_java_app.txt:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2 delims= " %%i in ('jps ^| findstr my-site-0.0.1-SNAPSHOT.jar') do (
echo Found process PID: %%i
taskkill /F /PID %%i
)
替换 JAR 文件名为实际值,保存为 stop_java_app.bat。此脚本将仅终止目标 Java 应用。