博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mvn exec用法,运行jar后台驻留进程
阅读量:6093 次
发布时间:2019-06-20

本文共 828 字,大约阅读时间需要 2 分钟。

java工程如果打包成war,那依赖的jar包都会被包含进去。

不过如果开发java的后台驻留进程,那一般会打包成jar包的形式,要想在运行进程的时候找到所有的依赖包,基本有如下两种方式:

 

方式一:

maven assembly插件方式打包,这样所有的依赖jar包会整合到一个大的jar包里头,不太适合开发阶段,因为打包比较耗时。

 

方式二:

mavn exec插件,也是开发的时候推荐的方式。

这样运行java进程的时候就不需要再去为 -classpath而烦恼了。一般maven管理的工程,在工程的根目录下执行 mvn clean & mvn package,然后在运行以下示例命令就可以。

mvn exec:exec -Dexec.executable="java" -Dexec.args="-cp %classpath com.timer.TimerTask"

这样的好处是,本地的eclipse和线上测试机器,可以通过svn等代码管理工具做代码同步,改好代码需要测试的话,在本地svn commit,然后测试linux机器上运行svn up & mvn package & mvn exec:exec -D....命令就很方便测试了。

 

当然mvn exec:exec 还可以指定jvm参数,系统属性,比如

mvn exec:exec -Dexec.executable="java" -Dexec.args="-DsystemProperty1=value1 -DsystemProperty2=value2 -XX:MaxPermSize=256m -cp %classpath com.project.Main arg1 arg2"

 

 

运行mvn exec:exec...... 之后会看到除了主函数main进程之外,还有一个守护进程Launcher

如果主函数的进程被杀掉,只剩下守护进程Launcher的时候,守护进程也会自动从jvm中退出

转载地址:http://wjlwa.baihongyu.com/

你可能感兴趣的文章
有序数组中找中位数
查看>>
JAVA数据库连接的另一种实现及简单的数据插入及显示
查看>>
阿里云Windows 自动扩容分区脚本
查看>>
[数据结构] 栈
查看>>
指针怎么用
查看>>
【IOS-COCOS2D游戏开发之十三】CCSPRITE利用BEZIER(贝塞尔)做抛物线动作并让CCSPRITE同时播放两个ACTION动作!...
查看>>
Android 文件存放路径【转】
查看>>
CPU GPU设计工作原理《转》
查看>>
[MySQL 5.6 ] Performance Schema学习:命名规范、状态变量及其他(2)
查看>>
mybatis性能优化二之多对多查询:用一次请求解决n次请求查询
查看>>
防止JavaScript自动插入分号
查看>>
Android--使用开源vitamio做万能视频播放器
查看>>
VS2008中使用NUnit
查看>>
SQL SERVER 的模糊查询 LIKE
查看>>
【Python】软件管理工具--pip
查看>>
插入排序之表插入排序
查看>>
Eclipse整合Tomcat开发Dynamic Web Project环境总结
查看>>
实战博客园访问流量计数器-三步操作简化教程
查看>>
JDBC与JAVA数据库编程
查看>>
Android开发之旅:环境搭建及HelloWorld
查看>>