windows server后台运行jar文件

这篇博客介绍了如何创建一个批处理文件run-server.bat来启动Java应用,具体步骤包括编写批处理脚本,复制并重命名javaw.exe,通过双击bat文件启动服务,并使用netstat命令检查服务是否正常监听3038端口。如果需要停止服务,可以通过taskkill命令按进程ID结束进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 创建一个run-server.bat文件,内容如下

    @echo off
    start xxx-server -jar D:\xxx-server-0.0.1-SNAPSHOT.jar
    exit
    
  2. 找到java安装路径下的bin文件夹,复制javaw.exe,并重命名为xxx-server

  3. 双击run-server.bat

  4. 查看是否运行成功

    netstat -anot | findstr 3038
    

显示结果

TCP    0.0.0.0:3038           0.0.0.0:0              LISTENING       17080    InHost
TCP    [::]:3038              [::]:0                 LISTENING       17080    InHost

说明:3038是使用的端口号,17080是进程号

  1. 结束进程

    taskkill /pid 17080 /F
    
### 如何通过 `java -jar` 启动 JAR 包使其在后台运行并设置开机自启 #### 背景说明 在 Windows 系统中,可以通过命令行工具使 Java 应用程序作为后台服务运行,并配置其随系统启动自动执行。以下是具体方法。 --- #### 使用 `javaw` 命令实现后台运行 为了确保应用程序不占用前台终端窗口,可以使用 `javaw` 替代普通的 `java` 命令来运行 JAR 文件。这种方式不会打开控制台窗口,从而达到后台运行的效果[^1]: ```bash START "MyJavaApp" javaw -jar myapp-0.0.1-SNAPSHOT.jar ``` 上述命令中的 `"MyJavaApp"` 是进程名称,可以根据实际需求修改;`myapp-0.0.1-SNAPSHOT.jar` 则为目标 JAR 文件路径。 如果希望进一步隐藏所有提示信息,还可以重定向标准输入/输出流到文件或忽略它们: ```batch START "" javaw -jar myapp-0.0.1-SNAPSHOT.jar > output.log 2>&1 ``` 这里将日志写入 `output.log` 文件以便后续排查问题[^2]。 --- #### 设置开机自启的方法 为了让该应用随着操作系统一起加载,有多种方式可选,下面介绍两种常见方案——任务计划程序和服务管理器。 ##### 方法一:利用 Task Scheduler (任务计划程序) Windows 自带的任务计划功能非常适合安排定时或者条件触发的任务。操作如下: 1. 打开 **Task Scheduler**(可通过搜索栏找到); 2. 创建一个新的基本任务; 3. 输入任务名和描述; 4. 配置触发器为“当计算机启动时”; 5. 动作部分选择“启动程序”,然后指定脚本位置或直接填写完整的命令字符串如上节提到的内容; 6. 完成向导后保存即可生效。 这种方法简单易懂,适合大多数场景下的快速部署[^3]。 ##### 方法二:注册为 Windows Service (服务) 对于更专业的生产环境,则建议把 Java 应用转换成为真正的 Windows 服务形式存在。这需要用到第三方工具比如 Apache Commons Daemon 的 Procrun 组件或者其他类似的解决方案。 以 Procrun (`prunsrv`)为例,安装步骤大致如下所示: 1. 下载对应平台版本的 procrun 可执行包; 2. 准备好要封装的服务参数, 包括 JVM 参数、classpath 和 main class 等细节; 3. 编辑批处理文件完成初始化设定; 示例代码片段可能看起来像这样: ```batch @echo off set SERVICE_NAME=MyJavaService set PR_INSTALL=C:\path\to\procrun.exe REM Define service parameters here... "%PR_INSTALL%" //IS//%SERVICE_NAME% --Install="%PR_INSTALL%" ^ --DisplayName="My Custom Java Application" ^ --Description="This is a sample java application running as windows service." ^ --Startup auto ^ --Classpath C:\apps\myapp-0.0.1-SNAPSHOT.jar ^ --StartMode jvm --StartImage "%JAVA_HOME%\bin\server\jvm.dll" ^ --StartMethod start ^ --StopMode jvm --StopImage "%JAVA_HOME%\bin\server\jvm.dll" ^ --StopMethod stop net start %SERVICE_NAME% pause ``` 此过程较为复杂但提供了更高的稳定性和可靠性保障. --- ### 总结 无论是采用简单的任务调度还是复杂的 Windows 服务模式,都可以满足让基于 `java -jar` 构建的应用程序既能在后台默默工作又能伴随主机重启而自行恢复的需求。根据实际情况和个人偏好挑选合适的技术路线实施吧! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值