使用Maven作为项目jar包依赖的管理,常常会遇到命令行启动,笔者也是哥菜鸟,在做微服务,以及服务器端开发的过程中,常常会遇到项目的启动需要使用main方法,笔者潜心的研究了很多博客,发现大多写的都是很零散,没有设计到应用场景,这里打算个人总结一下,一方面作为自己的学习笔记,另一方面作为大家的技术分享

这里是我写好的一个项目的启动脚本,这里需要注意几个地方

1:wins的编辑器,换行符是\r\n,而linux的换行符是\n,所以在我们编辑好了.sh的启动脚本后,会发现在linux上启动会出现 {\r 不是内部命令,xxxx行脚本出错,这里作为开发者一定要注意,那么,怎么解决呢,使用notePad++打开。选择----》视图-----》符号显示----------》显示所有符号

然后打开查找替换如下

替换完成后。显示如下:

对比第一张图显示,换行符是不是不一样了呢?

下面讲解一下,启动脚本的一些参数,和启动命令

SERVER=/usr/local/netty/mqtt           这里是我们打包的jar包的存放路径

echo                                                   控制台输出的提示符,就像我们的Syste.out.println()

JAVA_HOME                                     JDK安装路径

cd                                                       切换目录

classPath                                           jar包存放目录

nohup                                                linux执行命令

java -cp top-transfer.jar com.top.application.mqtt.activit.ActivitReceiveTopic start &                      java虚拟机启动main方法命令

注释:java -cp top-transfer.jar com.top.application.mqtt.activit.ActivitReceiveTopic start  也可以单独的作为mian方法的启动命令,只是这种启动方式,不是以进程的方式启动,当我们关闭控制台的时候进程也就关闭了,启动的进程也随之关闭,程序就不继续运行了。

下面我们来说明一下,Maven工程的打包方式,如上所述,maven工程必然会引用很多其他的jar包依赖,这个时候我们需要把第三方的jar包引用同时打包到我们的工程里面,这方便Mavne已经做好了插件

常用的插件maven-assembly-plugin,这个普及度比较高。

我们在pom.xml中添加如下代码

我们对开发完成的项目进行maven打包

Run后看到如下提示信息

BUILD SUCCESS说明打包成功,找到打包好的目录,看到出现了两个jar包,我们反编译去看看jar包的内容

反编译结果如下,发现第一个包没有jar包依赖

查看第二个包,如下包括我们的配置文件,第三方jar包都被打包进来了。

我们在注意看,在jar包中有一个MANIFEST.MF的文件,发现这个文件里路了我们打包好的jar包的配置信息,就相当于说明书一样。

我们在注意看上面说到的打包插件中有这样一行带代码

在mainClass标签中制定我们的jar包main方法,在期内添加main方法

然后我们重新打包,反编译第二个jar包

多了main方法,这样我们就制定jar包的启动窗口。至此打包完成

在linux 我们还要使用 chmod a+x startup.sh 把编辑好的脚本添加到linux的北部shell启动脚本中。

然后执行   ./startup.sh ,大功告成。

转载于:https://www.cnblogs.com/zhaieryuan/p/8645335.html

一篇关于Maven项目的jar包Shell启动脚本相关推荐

  1. jar包自动化启动脚本+开机自启

    Jar包自动化启动脚本+开机自启 文章目录 Jar包自动化启动脚本+开机自启 内容概要 脚本编写 1.循环遍历目录 2.判断jar包进程重启 开机自启设置 内容概要 本章节内容主要是基于日常工作需要大 ...

  2. Windows JAR包的启动脚本

    JAR包的启动脚本 多个JAR包同时启动 @echo off echo. echo WebVR START... echo.:: 进入目录文件夹 d: cd D:\JT\java\workspace\ ...

  3. maven学习(六)——在别的项目中引用通过Maven安装生成的项目的jar包

    1.新建HelloFriend项目,同时建立Maven约定的目录结构和pom.xml文件 HelloFriend     | --src | -----main | ----------java | ...

  4. maven打包springboot项目的jar包的时候出现报错There are test failures.

    报错信息 There are test failures. Please refer to /Users/2cy/my_idea_project/git_project/wechat-applet-d ...

  5. IDEA中MAVEN项目打JAR包的简单方法

    Idea中为一般的非Web项目打Jar包是有自己的方法的,网上一搜就能查到很多. 但是如果是为Maven项目打Jar包,其实是很简单的,因为maven本身就有打Jar包的命令. 最简单的方法 首先是在 ...

  6. 【Java Web】Myeclipse下运用maven管理项目jar包

    Java Web开发的人都知道经常会为缺少各种jar包而烦恼,经常要去各种地方下载.用maven来管理项目的jar包,就非常方便了,maven会自动帮你下载所需要的各种jar包. 下面就来介绍一下在M ...

  7. Maven(三):将web项目的war包热部署到远程Tomcat服务器

    相关阅读: Maven(一):安装与环境配置.使用Maven搭建web项目 Maven(二):常用命令.依赖管理 Maven(三):将web项目的war包热部署到远程Tomcat服务器 Maven(四 ...

  8. maven项目的pom文件中各标签理解

    本文来说下maven项目的pom文件中各标签理解 文章目录 常用标签 常用标签 POM是项目对象模型(Project Object Model)的简称 pom.xml主要描述了项目的maven坐标,该 ...

  9. Maven 手动添加 JAR 包到本地仓库

    转载自:http://www.blogjava.net/fancydeepin/archive/2012/06/12/380605.html Maven 手动添加 JAR 包到本地仓库 Maven 确 ...

最新文章

  1. Sublime text3 快捷方式(windows平台)
  2. echart饼状图没有数据的时候显示暂无数据_Python数据结构可视化 day 5
  3. AVAssetExportSession导出MP4视频失败
  4. Android Studio 约束布局[ConstraintLayout]
  5. Vim特定行行尾追加
  6. (八)nodejs循序渐进-事件驱动(进阶篇)
  7. 6.边缘检测:梯度——梯度计算中滤波器的线性特性的利用_6
  8. BZOJ4305 数列的GCD
  9. Java调用MATLAB作图是的ERROR--MWEException
  10. C语言实验报告(通用)
  11. Mac下安装激活matlab2017b教程方法
  12. 老男孩Python全栈视频
  13. 快手测试开发工程师面试
  14. matlab单点弦截法求解,弦截法求根c语言
  15. 35年老程序员个人谈:C语言时代行将落幕
  16. Linux的基础文件操作1
  17. 区块链 以太坊 多层调用,获取调用者 msg.sender
  18. 时间序列的分析及滚动预测代码
  19. iphone X 屏幕适配
  20. 飞腾FT2000/4 u-boot/UEFI开发环境搭建

热门文章

  1. 如何取消JS事件的派发——stopPropagation()
  2. java 文件上传 jar_JavaWeb 之 使用 commons-fileupload.jar 实现文件上传
  3. java在程序中加入音频_在任意Java程序中播放音频
  4. 天津大学计算机考研真题,天津大学计算机科学与技术考研真题
  5. dim private public static_C++ 强制类型转换操作符 static_cast
  6. 【赠送】IT技术视频教程,白拿不谢!思科、华为、红帽、数据库、云计算等等
  7. Facebook宕机背后,我们该如何及时发现DNS问题
  8. 如何画好一张架构图?(内含知识图谱)
  9. 函数组合的 N 种模式
  10. 字体设置_Endnote教程|字体设置