Java中启动jar包命令举例详解

 更新时间:2024年12月13日 10:17:55   作者:ldcaws  
这篇文章主要介绍了Java中启动jar包命令的相关资料,文中介绍了在Windows和Linux环境下启动和运行Java程序的方法,包括使用`java -jar`和`javaw`命令启动,以及如何在后台运行程序、重定向输出和错误信息、以及如何停止程序,需要的朋友可以参考下

1、windows环境

在cmd命令窗口,执行java -jar ***.jar即可启动java程序。按下ctrl+c或直接关闭cmd命令窗口,当前程序都会退出。
windows环境下javaw启动命令代表后台运行,关闭cmd命令窗口仍然运行,在任务管理器可以看到相关服务,如

javaw -jar ***.jar

2、linux环境

java程序启动命令,执行java -jar ***.jar即可启动java程序。按下ctrl+c或直接关闭终端,当前程序都会退出。
在命令的结尾添加“&”,“&”表示该程序可以在后台执行,如

java -jar ***.jar &

但是当窗口关闭时,程序也会中止运行,在命令的最前面加上nohup,这样当终端关闭时,程序就会不挂断运行,如

nohup java -jar ***.jar &

当前程序的打印日志会被写入到当前目录的nohup.out文件中,可以修改写入指定的文件中,如

nohup java -jar ***.jar > log.out &

当前程序的打印日志就会被写入当前目录下log.out文件中,当不想写入日志,可以将日志重定向到/dev/null中,/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,如

nohup java -jar ***.jar > /dev/null &

当只输出错误信息到日志,标准输出不写入日志,直接丢弃,如

nohup java -jar ***.jar > /dev/null 2>error.log &

当标准输出重定向到/dev/null中,然后错误信息输出重定向到标准输出,则错误信息也被定向到了/dev/null中,错误输出同样也被丢弃,如

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

当标准输出重定向到log.out中,然后错误信息输出重定向到标准输出,则错误信息也被定向到了log.out中,如

nohup java -jar ***.jar > log.out 2>&1 &

当需要停止java程序时,通过如下命令找到PID,并根据PID终止进程,如下

ps -ef | grep ***.jar
kill -15 PID

3、重定向

在linux中重定向相当的方便,只需要用>或>>符合就可以了,其含义如下

> 是覆盖写入,原来的内容全部清空。
>> 是追加写入,在原来内容末尾追加。
  • 标准输入文件(stdin):stdin 的文件描述符为 0,Unix 程序默认从 stdin 读取数据。
  • 标准输出文件(stdout):stdout 的文件描述符为 1,Unix 程序默认向 stdout 输出数据。
  • 标准错误文件(stderr):stderr 的文件描述符为 2,Unix 程序会向 stderr 流中写入错误信息。

这样就知道输出/错误输出信息分别用数字 1 和 2 代表,反过来看上面的写法就指定重定向的原理了。

java -jar app.jar >log 2>&1 &

这里的, 2>&1 代表把错误输出 2 合并到 1 中,并重定向到名为 log 的文件中去。符号 >& 是一个整体,不可分开,分开后就不是上述含义了。
2>&1 符号必须放到 >log 后面,为什么呢?我们不妨把 1 和 2 都理解是一个指针, 然后来看上面的语句就是这样的:本来 1----->屏幕 (1 指向屏幕),执行>log 后, 1----->log (1 指向 log),执行 2>&1 后, 2----->1 (2 指向 1,而 1 指向 log, 因此 2 也指向了 log)。

总结

到此这篇关于Java中启动jar包命令的文章就介绍到这了,更多相关Java启动jar包命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java Spring MVC4环境搭建实例详解(步骤)

    java Spring MVC4环境搭建实例详解(步骤)

    spring WEB MVC框架提供了一个MVC(model-view-controller)模型-视图-控制器的结构和组件,利用它可以开发更灵活、松耦合的web应用。MVC模式使得整个服务应用的各部分(控制逻辑、业务逻辑、UI界面展示)分离开来,使它们之间的耦合性更低
    2017-08-08
  • Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等

    Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等

    这篇文章主要介绍了Java如何实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序,需要的朋友可以参考下
    2015-07-07
  • 如何利用反射生成 MyBatisPlus中QueryWrapper动态条件

    如何利用反射生成 MyBatisPlus中QueryWrapper动态条件

    这篇文章主要介绍了如何利用反射生成 MyBatisPlus中QueryWrapper动态条件,分享在MyBatisPlus中经常会用到代码来构造查询条件等内容,需要的小伙伴可以参考一下
    2022-02-02
  • Maven Profile中的资源过滤与属性管理详解

    Maven Profile中的资源过滤与属性管理详解

    在持续交付体系下,软件需要面向开发、测试、预发布、生产等多个环境进行差异化配置,Maven作为Java生态的核心构建工具,其Profile机制配合资源过滤功能,为多环境构建提供了优雅的解决方案,本文深入解析如何通过<resources>与<filters>的联动实现环境隔离
    2025-05-05
  • java实现jdbc批量插入数据

    java实现jdbc批量插入数据

    这篇文章主要为大家详细介绍了java实现jdbc批量插入数据,三种JDBC批量插入编程方法进行比较,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • java 装饰模式(Decorator Pattern)详解

    java 装饰模式(Decorator Pattern)详解

    这篇文章主要介绍了java 装饰模式(Decorator Pattern)详解的相关资料,需要的朋友可以参考下
    2016-10-10
  • Netty分布式ByteBuf使用page级别的内存分配解析

    Netty分布式ByteBuf使用page级别的内存分配解析

    这篇文章主要介绍了Netty分布式ByteBuf使用page级别的内存分配解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • Java中String的JdbcTemplate连接SQLServer数据库的方法

    Java中String的JdbcTemplate连接SQLServer数据库的方法

    这篇文章主要介绍了Java中String的JdbcTemplate连接SQLServer数据库的方法,在研发过程中我们需要与其他系统对接的场景,连接SQLServer拉取数据,所以就用jdbc连接数据库的方式连接外部数据源,需要的朋友可以参考下
    2021-10-10
  • 如何用Netty实现高效的HTTP服务器

    如何用Netty实现高效的HTTP服务器

    这篇文章主要介绍了如何用Netty实现高效的HTTP服务器,对HTTP感兴趣的同学可以参考一下
    2021-04-04
  • java8 toMap问题(key重复如何解决)

    java8 toMap问题(key重复如何解决)

    这篇文章主要介绍了java8 toMap问题(key重复如何解决),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05

最新评论