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

  • 相关阅读:
    Dubbo限制大数据传输的解决方案
    出现The folder is already a source folder
    用Eclipse进行远程Debug代码
    Scanner和BufferReader之区别
    IO操作中的建议
    Android Serialization序列化
    flash画图API:解析obj格式
    UVA 6475 Effective Infection Time
    swift user guide.pdf下载
    【cocos2d-x制作别踩白块儿】第一期:游戏介绍
  • 原文地址:https://www.cnblogs.com/yanghuahui/p/3623982.html
Copyright © 2011-2022 走看看