zoukankan      html  css  js  c++  java
  • mvn exec用法,运行jar后台驻留进程

    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中退出

  • 相关阅读:
    centos 7安装mysql5.5
    设置CentOS开机连接网络 Centos 开机启动网卡的设置方法
    CentOs Linux 安装MySql服务失败 安装需要依靠包error:Failed dependencies
    LevelDb 101学习
    bash运行脚本的几种方式
    Linux环境变量总结 转
    outh2
    java的注解学习
    吾日三省吾身 java核心代码 高并发集群 spring源码&思想
    简述单工、半双工、全双工的区别
  • 原文地址:https://www.cnblogs.com/yanghuahui/p/3623982.html
Copyright © 2011-2022 走看看