Windows部署Jar包的三种方式图文详解

 更新时间:2023年07月21日 10:59:06   作者:程序员大佬超  
使用Java编写了一些有用的工具,因为不方便部署到服务器上,所以需要把Java生成的jar包在本地Windows上部署,这篇文章主要给大家介绍了关于Windows部署Jar包的三种方式,需要的朋友可以参考下

1、cmd命令启动

这种方式比较简单,但是窗口关闭后服务也就被杀死了,命令如下

java -jar xxx.jar

2、bat脚本启动

2.1 启动jar包

新建一个bat脚本,内容如下:

@echo off
%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit
java -jar F:\IdeaProjects\im-api\target\im-api-0.0.1-SNAPSHOT.jar > imApiLog.log  2>&1 &
exit

其中F:\IdeaProjects\im-api\target\im-api-0.0.1-SNAPSHOT.jar是我jar包的绝对路径,imApiLog.log将日志存储到该文件。右键该bat文件以管理员方式运行即可。

注:听大佬超的,bat文件路径不要有空格,jar包路径别有中文,否则会出现Error: Unable to access jarfile。

2.2 关闭服务

根据项目的端口号,查看端口进程,然后杀死进程即可

netstat -ano|findstr 8088 # 根据端口号查进程
taskkill /f /pid 13968   # 根据进程id杀进程(/f:强制结束该进程以及所有子进程)

以上两种方式都有点不太利于后期维护,请接着往下看。

3、使用WinSW

地址:https://github.com/winsw/winsw/releases,我这里选择v2.12.0版本。下载WinSW-x64.exe(根据自己的系统版本选择)和sample-minimal.xml,如下

sample-minimal.xml 是一个最小配置的示例,sample-allOptions.xml 是一个全部可配置参数的示例。

3.1 重命名

为了方便,首先将exe和xml文件放到和jar包一个目录,并根据自己需要进行重命名,如下

3.2 xml配置

<service> 
     <!-- 服务唯一ID -->
     <id>imApiId</id>
     <!-- 服务名称-->
     <name>imApiService</name>
     <!-- 服务描述-->
     <description>this is im api,author:chaodev</description>
     <executable>java</executable> 
     <arguments>-jar imApi.jar</arguments>
     <!-- 开机启动 -->
     <startmode>Automatic</startmode>
     <!-- 日志配置 -->
     <logpath>%BASE%\logs</logpath>
     <logmode>rotate</logmode>
 </service>

参数说明如下:

  • id:安装windows服务后的服务ID,必须是唯一的。
  • name:服务名称,也必须是唯一的。
  • executable:执行的命令,如启动命令java。
  • arguments:命令执行参数,如指定虚拟机参数,配置文件路径等。
  • startmode:启动模式,如开机启动Automatic。
  • logpath:日志路径,%BASE%代表相对路径,也就是当前目录。

3.3 安装服务

切换到exe所在目录,执行如下命令

imApiService.exe install #根据自己exe文件名称修改

安装后即可在系统服务里找到该服务,如下

3.4 卸载服务

利用uninstall命令即可,如下

imApiService.exe uninstall

3.5 启动和停止服务

除了直接在系统服务界面手动点击控制启动停止外,还可使用如下命令

xxx.exe start #启动服务
xxx.exe stop #停止服务
xxx.exe restart #重启服务
xxx.exe status #查看状态

如下

总结

到此这篇关于Windows部署Jar包的三种方式的文章就介绍到这了,更多相关Windows部署Jar包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中的ArrayList底层源码分析

    Java中的ArrayList底层源码分析

    这篇文章主要介绍了Java中的ArrayList底层源码分析,通过下标读取元素的速度很快,这是因为ArrayList底层基于数组实现,可以根据下标快速的找到内存地址,接着读取内存地址中存放的数据,需要的朋友可以参考下
    2023-12-12
  • Spring MVC整合Shiro权限控制的方法

    Spring MVC整合Shiro权限控制的方法

    这篇文章主要介绍了Spring MVC整合Shiro权限控制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • SpringBoot Cache 二级缓存的使用

    SpringBoot Cache 二级缓存的使用

    本文主要介绍了SpringBoot Cache 二级缓存的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • java中断机制实例讲解

    java中断机制实例讲解

    这篇文章主要介绍了java中断机制实例讲解,用了风趣幽默的讲法,有对这方面不太懂的同学可以研究下
    2021-01-01
  • Java高效实现电商产品排序实战

    Java高效实现电商产品排序实战

    这篇文章主要为大家介绍了Java高效实现电商产品排序实战,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Java线程中的interrupt方法解读

    Java线程中的interrupt方法解读

    这篇文章主要介绍了Java线程中的interrupt方法解读,Java中的interrupt是一种线程间通信的机制,用于请求中断线程的执行。当一个线程调用另一个线程的interrupt()方法时,被调用线程会收到一个中断信号,可以根据需要做出相应的处理,需要的朋友可以参考下
    2023-10-10
  • Java集合和IO流实现水果摊项目

    Java集合和IO流实现水果摊项目

    最近闲来无事,使用java基础知识集合和IO流做了一个简单的小项目,水果摊项目,用到GUI和Mysql数据库搭建,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-06-06
  • Java中SPI机制的实现详解

    Java中SPI机制的实现详解

    SPI(Service Provider Interface),是 JDK 内置的一种服务提供发现机制,可以用来启用框架扩展和替换组件,下面我们就来看看Java中SPI机制的具体实现
    2024-01-01
  • Spring的Aware接口实现及执行顺序详解

    Spring的Aware接口实现及执行顺序详解

    这篇文章主要为大家介绍了Spring的Aware接口实现及执行顺序详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • SpringBoot整合Scala构建Web服务的方法

    SpringBoot整合Scala构建Web服务的方法

    这篇文章主要介绍了SpringBoot整合Scala构建Web服务的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论