已注销用户的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
最代码最近下载分享源代码列表最近下载
sheryY LV82019年11月6日
月亮月亮
090413213 LV22019年4月10日
星星星星
华仔refueling LV12019年1月11日
星星
cmmmmm LV12018年12月6日
星星
aixiaoming LV12018年11月12日
星星
kjjacky LV12018年11月6日
星星
minghaozhi LV42018年9月12日
月亮
453160025 LV12018年6月26日
星星
军绿色的小白 LV22018年6月24日
星星星星
39905349 LV22018年5月25日
星星星星
最代码最近浏览分享源代码列表最近浏览
谢留贺 LV18月30日
星星
1562784308 LV88月18日
月亮月亮
hh22098 LV18月14日
星星
msamsa6月9日
暂无贡献等级
ljcadmin5月8日
暂无贡献等级
lsq54365 LV125月7日
月亮月亮月亮
wangdongtai LV273月30日
太阳月亮月亮星星星星星星
hzhsh0223 LV181月11日
太阳星星星星
Jasper-11月9日
暂无贡献等级
xiaoyu1200231 LV132019年12月31日
月亮月亮月亮星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友