1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 在Linux上部署jar包(不需要Docker Tomcat等容器)解决xxx.jar中没有主清单属性

在Linux上部署jar包(不需要Docker Tomcat等容器)解决xxx.jar中没有主清单属性

时间:2022-06-11 11:24:07

相关推荐

在Linux上部署jar包(不需要Docker Tomcat等容器)解决xxx.jar中没有主清单属性

一、springboot在idea中通过package命令打包

将target下生成的jar包拉到linux下,并执行jar包如下

[root@localhost oa]# java -jar new_demo.jar new_demo.jar 中没有主清单属性

情况1:

如果构建的是springboot项目,Main启动类应该在根路径下,打包的时候在pom.xml文件中应该加下面代码,这样在启动jar包的时候就能够自动检索启动类。

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

情况2:

如果构建的不是springboot项目,即没有固定的启动类路径,则找到该执行哪个main,解决办法:在pom.xml中添加如下的代码,指定执行的main路径。

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>2.3</version><configuration><appendAssemblyId>false</appendAssemblyId><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix>//com.vis.datadetail.ReadTopoData是指定jar执行的main路径<mainClass>com.vis.datadetail.ReadTopoData</mainClass></manifest></archive></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>assembly</goal></goals></execution></executions></plugin></plugins></build>

然后再打包,用RAR打开jar包,会发现在META-INF中的MANIFEST.MF文件中多出了Main-Class指定要执行的main路径。

二、部署jar包程序

查看之前启动的程序,关闭之

ps -ef|grep java

kill -9 xxx

启动程序

nohup java -jar xxx.jar > log/log.log 2>&1 &

log 文件下log.log日志文件

三、部署war包程序

将war包放在webapps目录下重启Tomcat

(1)进入Tomcat的bin目录

cd /usr/local/tomcat/bin

(2)关闭Tomcat

./shutdown.sh

(3)查看Tomcat是否已关闭

ps -ef|grep java

如果显示如下相似信息,说明Tomcat还没有关闭

root 7010 1 0 Apr19 ? 00:30:13 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

使用kill命令直接杀死相应进程

kill -9 7010

(4)启动Tomcat

./startup.sh

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。