java -jar设置添加启动参数实现方法

 更新时间:2023年02月13日 14:13:11   作者:一枝风  
这篇文章主要介绍了java -jar设置添加启动参数实现方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

java -jar设置添加启动参数方法

java -jar 参数前后位置说明

springboot项目启动的时候可以直接使用java -jar xxx.jar这样。下面说说参数的一些讲究

-DpropName=propValue

-DpropName=propValue的形式携带,要放在-jar参数前面

eg:

java -Dxxx=test -DprocessType=1 -jar xxx.jar

取值:System.getProperty("propName")

参数直接跟在命令后面

eg:

java -jar xxx.jar processType=1 processType2=2

取值:参数就是jar包里主启动类中main方法的args参数,按顺序来

springboot的方式,--key=value方式

eg:

java -jar xxx.jar --xxx=test

取值:spring的@value("${xxx}")

java -jar命令详解

java -jar命令用于执行jar程序,常用的写法有5种:

第1种

java -jar demo.jar

说明:用这种方法启动后,不能继续执行其它命令了,如果想要继续执行其它命令,需要退出当前命令运行窗口,会打断jar的运行,打断一般用ctrl+c。

第2种

java -jar demo.jar &

第2种在第1种方式的基础上在命令的结尾增加了&,&表达的意思是在后台运行。

这种方式可以避免打断后程序停止运行的问题,但是如果关闭当前窗口后程序会停止运行。

第3种

nohup java -jar demo.jar &

第3种在第2种方式的基础上,在命令的最前面增加了nohup。

nohup是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。

加了nohup后,即使关掉命令窗口,后台程序demo.jar也会一直执行。

第4种

nohup java -jar demo.jar >1.txt &

第4种在第3种的基础上,在后面增加了>1.txt,意思是将nohup java -jar demo.jar的运行内容重定向输出到1.txt文件中,即输出内容不打印到当前窗口上,而是输出到1.txt文件中。

第3种没有加>1.txt,它的输出重定向到nohup.out文件中,nohup.out也就是nohup命令的默认输出文件, 文件位于$HOME/nohup.out 文件中,比如用root执行,就会输出到/root/nohup.out。

第5种

nohup java -jar demo.jar >/dev/null 2>&1 &

这里说下jar后面这串符号的意义 >/dev/null 2>&1 &

  • > 代表重定向到哪里,例如:echo "123" > /home/123.txt
  • /dev/null 代表空设备文件
  • 2> 表示stderr标准错误
  • & 表示等同于的意思,2>&1,表示2的输出重定向等同于1
  • 1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于 "1>/dev/null"

最后一个&表示在后台运行。

这里再补充说下这几个数字代表的含义:

  • 0 标准输入(一般是键盘)
  • 1 标准输出(一般是显示屏,是用户终端控制台)
  • 2 标准错误(错误信息输出)

/dev/null :首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。一般项目中定义中输出运行日志到指定地址,这样的话,就不需要再单独输出nohup.out文件,这种情况可以考虑使用这种。

我们可以把它写成一个脚本,不用每次都写一遍。新建start.sh,根据我上传的demo.jar,输出到1.txt中,具体脚本如下:

nohup  java  -Xms515m -Xmx1024m -jar -Dfile.encoding=UTF-8 demo.jar --spring.profiles.active=prod >/dev/null 2>&1 &

可以看到,上面的命令中我使用了Xms、Xmx、Dfile.encoding、spring.profiles.active等参数,那么java -jar可以添加什么参数,各自又能实现什么样的效果呢,且看下文:

  • -Xms 指定jvm运行最小运行堆内存,默认为物理内存1/64,用法 :-Xmx512m 注意:Xmx和512m中间不用添加空格
  • -Xmx 指定jvm运行最大运行堆内存,认物理内存1/4,用法: -Xmx1024m 注意:Xmx和1024m中间不用添加空格
  • --server.port 指定jar运行的port端口,用法:--server.port=8085
  • --spring.profiles.active=pro 指定运行的配置文件、环境,用法:--spring.profiles.active=prod

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring整合多数据源实现动态切换的实例讲解

    Spring整合多数据源实现动态切换的实例讲解

    下面小编就为大家带来一篇Spring整合多数据源实现动态切换的实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • SpringBoot中MyBatis使用自定义TypeHandler的实现

    SpringBoot中MyBatis使用自定义TypeHandler的实现

    本文主要介绍了SpringBoot中MyBatis使用自定义TypeHandler,当默认的类型映射不能满足需求时,自定义 TypeHandler 就非常有用,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08
  • IDEA 2020版本最新破解教程可激活至2089年(推荐)

    IDEA 2020版本最新破解教程可激活至2089年(推荐)

    这篇文章主要介绍了IDEA 2020版本最新破解教程可激活至2089年,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Spring Boot 基于 SCRAM 认证集成 Kafka 的过程详解

    Spring Boot 基于 SCRAM 认证集成 Kafka 的过程详解

    在本篇文章中,我们将探讨如何在 Spring Boot 应用中集成 Kafka 并使用 SCRAM 认证机制进行安全连接,并实现动态创建账号、ACL 权限、Topic,以及生产者和消费者等操作,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • JavaMail发送(带图片和附件)和接收邮件实现详解(四)

    JavaMail发送(带图片和附件)和接收邮件实现详解(四)

    这篇文章主要为大家详细介绍了JavaMail带图片和附件的发送和接收邮件实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Java实现通过IP计算分析归属地实例分享

    Java实现通过IP计算分析归属地实例分享

    文章介绍了如何通过IP地址进行归属地分析,包括IP地址的两种类型(IPV4和IPV6)以及计算归属地的方法,对于不精准的需求,推荐使用开源的字典库如GeoIP2;对于高精度需求,可以购买专业的IP网段数据并实时更新数据库,在设计项目时应提前规划数据结构,以避免数据清洗问题
    2025-05-05
  • Java连接Oracle数据库完整步骤记录

    Java连接Oracle数据库完整步骤记录

    数据库的操作是当前系统开发必不可少的开发部分之一,下面这篇文章主要给大家介绍了关于Java连接Oracle数据库的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • 利用Java手写阻塞队列的示例代码

    利用Java手写阻塞队列的示例代码

    在我们平时编程的时候一个很重要的工具就是容器,在本篇文章当中主要给大家介绍阻塞队列的原理,并且在了解原理之后自己动手实现一个低配版的阻塞队列,感兴趣的可以尝试一下
    2022-08-08
  • Java SimpleDateFormat中英文时间格式化转换详解

    Java SimpleDateFormat中英文时间格式化转换详解

    这篇文章主要为大家详细介绍了Java SimpleDateFormat中英文时间格式化转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 详解java面试题中的i++和++i

    详解java面试题中的i++和++i

    这篇文章主要介绍了java面试题中的i++和++i的相关资料,需要的朋友可以参考下
    2018-03-03

最新评论