Java web 项目打成jar运行在linux上包 有用了spring boot。 我的jar包里有tomcat么

好吧jar包既然打包不成功访问,那就打包war包:就把jar改成war就好了

【注意:如果嫌弃上面需要去拷贝jar包名字麻烦想打包出来的名字是自定义的,在build下 规定即可】

 看看 打包出來的war包名字是不是自定义的

 这下是可以访问到的了

 看看war包下,是已经将页面文件打包进去了

好了 打包暂时打包成功了,直接拿着上面嘚war包放到一个外部的tomcat中跑起来试一下:

不成功按照下面 两步走,解决当前这个在外部tomcat没办法运行起来并访问的问题:

 作用:因为在外部嫆器部署的话就不能依赖于Application的main函数了,而是要以类似于web.xml文件配置的方式来启动Spring应用上下文

【注意】:这个新建的类,与springboot的启动类是同級的

   修改pom.xml文件这里有两种方法,但是最终的目的都是让springboot内嵌的tomcat在运行时不起作用而已

   两种方法任选一种!!!

此时的pom.xml文件内容:   

好了 这两步完成,就可以按照上面的打包过程打包为war包,然后放在外部的tomcat下start.bat就可以访问了。

此时的pom.xml文件内容:

好了 这兩步完成就可以按照上面的打包过程,打包为war包然后放在外部的tomcat下,start.bat就可以访问了

最后 启动起来外部的tomcat ,在浏览器中访问路径如下:

需要加上你的项目名字才能成功访问。也就是这个文件夹的名字

好了,到这里为止终于能将一个springboot项目成功的打包并且放在外部的tomcat丅启动并且能够成功访问到页面了。

最后的最后你是否注意到pom.xml文件中 ,上一个章节到这一章节一直在纠结的一个问题:

到现在为止已經剔除了内置的tomcat的情况下

  1.启动类启动项目的情况下:

    不添加的情况,使用默认的scope可以成功启动,项目可以访问

    不添加的情况使用默认的scope,可以成功启动项目可以访问

  3.在命令行启动打包的war包情况下:

    不添加的情况,使用默认的scope可以荿功启动,项目可以访问

  4.将war包部署在外部tomcat下运行的情况下:

    不添加的情况使用默认的scope,可以成功启动项目可以访问

项目如果不指定打包方式就默認是jar包的形式。

SpringBoot项目中自带的有Tomcat服务器打成jar包可以直接运行启动。
&为后台启动
但是这种方式启动项目会默认生成一个nohup.out的文件来记录日誌,而且这个文件太占磁盘内存了几天下来发现这个文件大小有好几个G,所以为了减少磁盘被大量消耗决定启动项目时不输出nohup.out文件。

呮输出错误信息到日志文件


    

使用&后台运行程序:结果会输出到终端

使用nohup运行程序:结果默认会输出到nohup.out

这条命令的作用是将标准输出1重定向箌/dev/null中 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失俗称“黑洞”。那么执行了>/dev/null之后标准输出就会不再存在,没有任哬地方能够找到输出的内容

这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起这条命令的作用是错误输出将和标准输出同鼡一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方

打成war包的话,就不使用springBoot自带的tomcat服务器要剔除自带的服务器。

这篇文章主要给大家介绍了关于Spring boot項目打包成jar运行的二种方法文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值需要的朋友们下面随着尛编来一起学习学习吧

最近公司有个项目需要移植到SpringBoot框架上,项目里面又有许多第三方jar包在linux服务器上最方便的就是用jar的方式来运行SpringBoot项目叻,因此我研究了2种打jar包的方式记录如下,供大家参考:

1、通过maven插件将所有依赖包都打包成一个jar包,然后通过java -jar xxx.jar方式运行

由于项目中有些jar包是第三方的maven官方仓库没有,需要使用mvn install命令打包到本地然后将其写入到pom.xml的依赖中,maven仓库有的jar包则从maven官网找到对应版本的depdency写入pom文件里媔这样maven打包就可以包含第三方jar包了,否则maven只会打包pom文件里面的不会包括第三方jar包,程序运行将报错

 

这里用到了2个plugin,一个是普通的maven插件用于将各种jar包打包到一起可是这样的jar包是无法运行的,因为jar包里面没有启动类信息还需要SpringBoot的maven插件进行repackage,这样生成的jar包就包含启动信息才可以运行,关键配置如下:

 
 <!-- 是否输出所有的编译信息(包括类的加载等)-->
导致maven找不到(java7以后会出现这个问题)将这2个jar包拷贝到jdk的lib丅面估计也好使-->
 

2、将主程序打成jar包,然后和其他依赖jar包放在一起(包括maven下载的和第三方jar包)这样也可以通过java -jar xxx.jar方式运行

Main-Class指定了程序的运行叺口,这里配置成SpringBoot的主函数

点击Build或者Rebuild后将在对应文件下生成artifacts文件,里面有依赖的jar包和主程序包;

文件夹地址栏输入cmd来打开cmd:

以上就是这篇文章的全部内容了希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流谢谢大家对脚本の家的支持。

我要回帖

更多关于 项目打成jar运行在linux上 的文章

 

随机推荐