目录

一、服务器使jar包始终运行

二、SpringBoot启动jar首次启动慢的解决方案


一、服务器使jar包始终运行

把java程序打成jar包后,在服务器终端执行,如果使用java -jar xxxx.jar执行,

当我们退出终端的时候,xxxx.jar这个程序也会停止。

为了保证程序能够一直运行,应该改为这样运行:nohup java -jar xxx.jar&命令,则程序会在后台一直运行

 原因是:

直接启动jar文件,在当前会话进程中开启一个子进程来运行程序,这个子进程会随着会话进程的结束而结束。这种情况适合短时间测试用。

nohup的意思是不挂断,只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般我们可在结尾加上"&"来将命令同时放入后台运行,也可用">filename2>&1"来更改缺省的重定向文件名。这种情况适合在生产环境长时间运行。

nohup启动可以采用如下三种方式:

# 把标准输出重定向到空设备,即只输出错误信息到日志文件
nohup java -jar app.jar >/dev/null 2>log & 
# 把标准输出和标准错误全重定向到空设备,即不输出日志
nohup java -jar app.jar >/dev/null 2>&1 &
# 当前目录下会生成一个nohup.out文件,控制台输入的东西会会被转移到这个文件中
nohup java -jar bbb.jar &

java 启动命令怎么调整jar包加载顺序 java程序jar包启动很慢_标准输出

以符号“>”进行划分,符号左边是输出什么,符号右边是输出到哪

  • 1>   符号左边是1,标准输出。
  • 2>   符号左边是2,错误输出。
  • 2> &1  错误输出将会和标准输出输出到同一个地方。
  • > &1   重定向到标准输出的地址,啥意思,就是输出到已指定的标准输出的地址。
  • > &2   重定向到错误输出的地址,就是输出到已指定的错误输出的地址。
  •  >/dev/null   这条命令的作用是将标准输出1重定向到/dev/null中。 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。

 例如:***.jar >nohup.log 2>&1命令,可以拆解成 > nohup.log 和 2> &1两个输出,表示错误输出和标准输出都在nohup.log

(1)nohup java -jar ***.jar >/data/log.log 2>/data/err.log &  

解释:标准日志输出到/data/log.log文件,错误日志输出到/data/err.log文件。

(2)nohup java -jar ***.jar >/data/log.log 2>&1 &  

解释:标准日志输出到/data/log.log文件,错误日志重定向也输出到/data/log.log文件。

(3)nohup java -jar ***.jar >/dev/null 2>/data/err.log &  

解释:标准日志输出到/dev/null,也就是不输出标准日志,错误日志输出到/data/err.log文件。

nohup java -jar bbb.jar &:

当前目录下会生成一个nohup.out文件,控制台输入的东西会会被转移到这个文件中。最后通过exit退出终端窗口。

java 启动命令怎么调整jar包加载顺序 java程序jar包启动很慢_jar_02

二、SpringBoot启动jar首次启动慢的解决方案

解决办法 编辑 /usr/java/jdk/jdk1.8.0_211/jre/lib/security/下的java.security 文件
securerandom.source=file:/dev/random
改为
securerandom.source=file:/dev/./random
这样就是一个非租塞