java|java 包部署 2021-01-13

1. Jar 包启动 【java|java 包部署 2021-01-13】(窗口启动: jar -jar: 命令行启动,窗口停留)
下面介绍后台启动方式
1.1 Linux

  1. java -jar xxx.jar &
  • 说明: 在末尾加入 & 符号
  1. jar -jar, ctrl+z
    (1)执行java -jar xxx.jar后
    (2)ctrl+z 退出到控制台,执行 bg
    (3)exit
    完成以上3步,退出SHELL后,jar服务一直在后台运行。
  2. nohup java -jar xxxx.jar & (推荐)
    (1) 输出日志:nohup java -jar babyshark-0.0.1-SNAPSHOT.jar > log.file 2>&1 &
上面的2 和 1 的意思如下: 0标准输入(一般是键盘) 1标准输出(一般是显示屏,是用户终端控制台) 2标准错误(错误信息输出)

  1. kill process
1. netstat -anp查看PID(process id) 2. kill -9 pid

关于netstat 命令: -a (all)显示所有选项,netstat默认不显示LISTEN相关 -t (tcp)仅显示tcp相关选项 -u (udp)仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化成数字。(重要) -l 仅列出有在 Listen (监听) 的服務状态-p 显示建立相关链接的程序名(macOS中表示协议 -p protocol) -r 显示路由信息,路由表 -e 显示扩展信息,例如uid等 -s 按各个协议进行统计 (重要) -c 每隔一个固定时间,执行该netstat命令。过滤: Linux:netstat -anp| grep 3306

1.2 Window
  1. 新建 .bat文件
@echo off start javaw -jar xxx.jar exit

  • 参数设定
@echo off start javaw -jar -Dspring.config.location=C:\TestPlatform8083\application.properties C:\TestPlatform8083\TestPlatform-===.jar exit

  • 偶尔还需要指定编码格式,-Dfile.encoding=utf-8
    如果想要指定Log日志
@echo off start java -jar -Xms8000m -Xmx8000m -Xmn4000m test.jar > log\batchLog%date:~0,4%%date:~5,2%%date:~8,2%.log exit

  • @echo off 当执行失败的时候,不打印失败的信息
    如果是调试阶段,可以将这一段注掉
  • @pause 是会弹出命令行窗口,提示“请按任意键继续...”,不需要暂停的脚本,就把这一行注释掉
  • 需要指定java 启动内存的大小
    java -jar -Xms8000m -Xmx8000m -Xmn4000m test.jar
  1. 杀进程
  • 查询过滤:
    window: netstat -ano|findstr "3306"
  • 如要杀nginx.exe进程,命令如下:
    taskkill /im nginx.exe /f
    NOTE: /f在这里意为强制结束进程
  • 也可以使用pid杀:
    taskkill /pid {pid}
2. War 包启动 Reference
  1. 流风雨情. (2020). java jar后台启动的三种方式
  2. 刘信坚的博客. (2018). Java -jar 如何在后台运行项目

    推荐阅读