已注销用户的gravatar头像
已注销用户 2016-12-21 10:07:04

Linux shell脚本启动jar运行java程序的实例分享

写在前面

昨天提了一个问题,最终完美解决问题,特此记录一下。

回顾问题 Linux shell脚本启动一个jar为什么抛出NoClassDefFoundError的异常? 

好了,简单的分享一下过程吧!

 

从提问的问题中,我已经说明了,这个项目是个中间件,开发完了提供出来的是一个jar包,具体是干嘛的就不说了,最终就是要放在服务器上,启动这个jar。 有的牛牛估计傻了,什么,启动jar? 对的,你没有听错,就是启动jar。

一般来说,在开发工具里面 IDE / eclipse 里面我们启动程序的一个唯一入门就是main方法,那么要启动一个 jar,入口在哪里?

入口一样的也是main方法,只是我们脱离了开发工具,要用命令去执行程序了而已。

在windows中,我们可以在cmd中使用 java -jar XXX 的方式去启动 我们打好的jar。

说到这里,必须说说,在maven中打出来的jar

上面说到可以用 jave -jar 方式启动jar包,但是如果你是用maven进行开发管理的话,默认的打出来的jar包是不能运行的。

如图所示

Linux shell脚本启动jar运行java程序的实例分享

这就是原始maven 打出来jar包,使用maven默认的package命令构建的jar包中只包括了工程自身的class文件,并没有包括依赖的jar包。

问题就在这里。

解决方法:

在pom.xml文件中

添加如下代码(问题中也已经写了)

<!-- 打包时 生产可运行的jar包 begin -->
            <plugin> 
                <groupId>org.apache.maven.plugins</groupId> 
                <artifactId>maven-shade-plugin</artifactId> 
                <version>1.2.1</version> 
                <executions> 
                    <execution> 
                        <phase>package</phase> 
                        <goals> 
                            <goal>shade</goal> 
                        </goals> 
                        <configuration> 
                            <transformers> 
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
                                    <mainClass>这里写你的运行的类所在的package+className</mainClass> 
                                </transformer> 
                            </transformers> 
                        </configuration> 
                    </execution> 
                </executions> 
            </plugin> 
            <!-- 打包时 生产可运行的jar包 end -->

参考资料链接:maven-assembly-plugin插件的使用说明 http://chenzhou123520.iteye.com/blog/1706242 有需要的牛牛自己学习学习

 

好了,通过以上步骤,就可以生成2jar包

一个为:original-XXX-0.0.1-SNAPSHOT.jar,另一个为:XXX-0.0.1-SNAPSHOT.jar,其中original...jar里只包含了工程自己的class文件,而另外的一个jar包则包含了工程本身以及所有依赖的jar包的class文件。我们只需要使用第二个jar包就可以了。

如图所示

Linux shell脚本启动jar运行java程序的实例分享

那么重点来了,jar包问题解决了,丢服务器的启动脚本在哪里?

少年别急,下载我分享的脚本,一探究竟吧!

 

我是最代码伊成,你值得关注我!


打赏

文件名:startup-ignite.rar,文件大小:0.422K 下载
  • /
    • /startup-ignite.sh
最代码最近下载分享源代码列表最近下载
3969138  LV15 2020年11月17日
sheryY  LV9 2019年11月6日
090413213  LV2 2019年4月10日
华仔refueling  LV1 2019年1月11日
cmmmmm  LV1 2018年12月6日
aixiaoming  LV1 2018年11月12日
kjjacky  LV1 2018年11月6日
minghaozhi  LV5 2018年9月12日
453160025  LV1 2018年6月26日
军绿色的小白  LV2 2018年6月24日
最代码最近浏览分享源代码列表最近浏览
lcy111  LV4 10月23日
素还真  LV1 8月23日
whfuai  LV14 7月14日
林间听风  LV10 6月24日
liys1234  LV9 4月27日
zhihui  LV4 4月9日
故事_sun  LV26 3月24日
gaoshuao  LV2 2021年8月3日
gwqing14  LV2 2021年7月16日
212828939  LV15 2021年5月12日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友