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

java -jar命令详解相关推荐

  1. 把java文件打包成.jar (jar命令详解)

    把java文件打包成.jar (jar命令详解) 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1. ...

  2. java文件打包jar文件_把java文件打包成.jar (jar命令详解)

    把java文件打包成.jar (jar命令详解) 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1. ...

  3. 制作可执行的JAR文件包及jar命令详解

    制作可执行的JAR文件包及jar命令详解zt http://www.chinaunix.net 作者:郝君  发表于:2003-08-12 14:32:38 常常在网上看到有人询问:如何把 java  ...

  4. java jar包详解_Jar打包用法详解

    这篇文章主要介绍了Jar打包用法,详解分析了jar打包命令的各种常见用法及参数含义,非常具有实用价值,需要的朋友可以参考下 本文较为详细的分析了Jar打包的用法.分享给大家供大家参考.具体分析如下: ...

  5. Linux后台运行Java程序命令详解

    nohup java -jar -Xms512m -Xmx512m app3.jar > /var/log/java/app3.log 2>&1 & 上面是后台运行Java ...

  6. java -p_javap命令详解 - JackieYeah的个人空间 - OSCHINA - 中文开源技术交流社区

    一.用法 javap [ 选项 ] classes 二.描述 javap命令反汇编一个或多个类文件.它的输出由使用的选项决定.如果没有使用选项,javap命令将打印输出传递给它的类的包, protec ...

  7. java 版本查看命令_查看Java版本命令如何查看?Java常用命令详解

    现在程序员开发项目都在使用工具,很多人可能都忘记了Java自带命令,下面就让我来介绍些吧. 1.java.exe: 运行java程序,这个相信每一位用Java的人知道了. 2.javac.exe: 编 ...

  8. java -c_JAVAC 命令详解

    结构 javac [ options ] [ sourcefiles ] [ @files ] 参数可按任意次序排列. options命令行选项.sourcefiles一个或多个要编译的源文件(例如 ...

  9. Java jstack 命令详解

    Java 中 jstack 命令可以用来查看运行的 Java 进程下,多线程的运行情况,我们用一个死锁的例子来看: 比如下面这段死锁的代码: public class DeadLock {privat ...

最新文章

  1. uniapp无法使用substr_SQLite 3.34.0发布,世界上使用量最大的数据库引擎
  2. python list倒序_Python基础-不一样的切片操作
  3. Catterplots包,让你绘制不一样的图
  4. [置顶] C#中Socket服务端代码分享
  5. delphi fastreport 动态加载图片
  6. js动态渲染html页面,利用Scrapy-Splash抓取JS动态渲染的网页数据
  7. 如何用JS实现泛玉米解析
  8. html 游戏首页,30个让人玩上瘾的HTML5游戏
  9. matlab输出n个a,输入a,n两个参数,要求输出aaa...a(共n个)的值
  10. linux下如何部署php,linux如何部署php
  11. 《白帽子讲Web安全》| 学习笔记之访问控制
  12. 物联网智能垃圾回收源码 智慧分类回收源码 物联网应用
  13. java web背景颜色表,更改表行背景颜色
  14. ggplot2设置坐标轴范围_ggplot2——双坐标轴?
  15. CentOs7关闭防火墙的命令
  16. Apple Final Cut Pro 10.4.8
  17. PC端Windows安装adb工具和使用
  18. Android转AndroidX
  19. 25岁员工突然离世:熬得起下半夜的人,却熬不起下半生!
  20. 我想攒钱娶媳妇....

热门文章

  1. CString 、Char*与LPCWSTR类型转换解决方案
  2. 全国全国各个省市数据库 三级联动 无刷新数据库
  3. paintevent参数_QT 作图事件 PaintEvent
  4. 油门刹车一个踏板全搞定!还有这波操作。。。
  5. 项目管理 : 如何入手分包合同管理
  6. 2021网站高级认证页面HTML源码
  7. 使用ObjectARX在AutoCAD2002中画直线
  8. C++ char二维数组使用总结
  9. 如何释放电脑默认被限制的20%网速
  10. DSP_TMS320F28377D_最简洁最高效的IPC核间通信代码