启动jar文件,报”no main manifest attribute“异常

简介: 在云服务器上部署打包好的的MQTT消息服的jar包,使用命令`nohup java -jar xxx.jar &` 启动,出现的问题

问题描述

在云服务器上部署打包好的的MQTT消息服的jar包,使用命令nohup java -jar xxx.jar &启动,出现以下问题。如下图:

4f3f50131979a6f20695cbcaf01f427b.png

## 原因分析

如上图,红色框中日志反馈的问题no main manifest attribute找不到主类;

按照自己的惯性思维,如:找不到或出现404字样,自己首先会考虑几点:

- 是不是路径没有或者发生变化自己没有及时修正;

- 是不是操作的时候误删除等情况。

知识补充

一般java打包的jar文件通常会包含清单文件(META-INF/MANIFEST.MF)该文件可以包含主类以及加载类路径等信息。

MANIFEST.MF中应用相关属性中Main-Class定义jar文件的入口类,该类必须是一个可执行的类,一旦定义了该属性即可通过启动命令执行。

查看有问题的jar包

解压jar包 "tar -xvf xx.jar" 到当前目录

异常情况:

20210616143036.png

正常情况:

20210616143714.png

排查问题

springboot在本地启动运行是正常的,打包的时候出现这种问题,所以排查pom.xml文件某些依赖或者插件出现问题,经过排查发现:

<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.*</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/*.*</include></includes></resource></resources><plugins><!--提供src结尾的jar包(提供项目源码的jar包)--><plugin><!--问题点--><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.1.1</version></plugin></plugins><finalName>${project.finalName}</finalName></build>

项目中引入的插件是进行源文件的打包的jar文件,并非是能可执行的jar文件

重新配置打包插件

<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.*</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/*.*</include></includes></resource></resources><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins><finalName>${project.finalName}</finalName></build>

重新上传到云服务器上,使用命令执行,程序正常启动。

总结

问题是短时间解决了,但是从中反映出一个问题,对maven的知识欠缺,需要补一补才对。加油,小伙子。

目录
相关文章
|
3月前
|
Java 数据库 数据安全/隐私保护
Java操作Excel文件导入导出【内含有 jxl.jar 】
Java操作Excel文件导入导出【内含有 jxl.jar 】
56 0
|
27天前
|
Java Maven C++
【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
|
1月前
|
Java Maven Windows
java -jar 启动 boot 程序 no main manifest attribute, in .\vipsoft-model-web-0.0.1-SNAPSHOT.jar
java -jar 启动 boot 程序 no main manifest attribute, in .\vipsoft-model-web-0.0.1-SNAPSHOT.jar
49 0
|
2月前
|
消息中间件 分布式计算 Hadoop
实时计算 Flink版操作报错合集之使用flink jar开发,报错:找不到main方法,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
3月前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
40 1
|
3月前
|
IDE 数据可视化 Java
Java基础6-Java文件和Java包结构和常用的jar包(二)
Java基础6-Java文件和Java包结构和常用的jar包(二)
41 0
|
3月前
|
Java Unix 编译器
Java基础6-Java文件和Java包结构和常用的jar包(一)
Java基础6-Java文件和Java包结构和常用的jar包(一)
64 0
|
4月前
|
运维 Dubbo Java
Serverless 应用引擎产品使用之在 Serverless 应用引擎中,查看镜像文件中的 JAR 文件如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
172 2
|
4月前
|
移动开发 Java Unix
Android系统 自动加载自定义JAR文件
Android系统 自动加载自定义JAR文件
172 1
|
4月前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
411 0

热门文章

最新文章