运行jar包报 “XXX中没有主清单属性”

2024-03-22 20:10

本文主要是介绍运行jar包报 “XXX中没有主清单属性”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近写了一个博客采集系统,用的是普通maven项目中的main方法作为启动项,打完jar包在centos7上运行时报错,查找资料改正,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用


文章目录

        • 一 报错原因
        • 二 解决方案
        • 三 相关常用命令汇总
        • 四 总结


一 报错原因

打包后的jar文件中的MANIFEST.MF缺少项目启动项,即没有Main-Class,如下:

在这里插入图片描述

在这里插入图片描述

二 解决方案

1、指定MANIFEST.MF路径

项目打包前
第一步 file–>project structure 弹框后选中Atifacts—> + ---->jar---->from module with dependenceis
第二步 选择一个Main Class,然后指定META-INF/MANIFEST.MF的路径为src下(注意不要放到main/java目录下,否则打成的jar中META-INF/MANIFEST.MF不含有Main-Class信息)
在这里插入图片描述

在这里插入图片描述
如果这个方案不行,那就很有可能是另一个原因

2、项目pom.xml文件中添加插件spring-boot-maven-plugin

在这里插入图片描述
3、修改后重新生成jar包
结果如下:
在这里插入图片描述

三 相关常用命令汇总

在linux下启动或关闭jar包服务

启动:进入到jar包对应的文件夹,执行 nohup java -jar xxx.jar & 命令

关闭:

  • 先查出对应的PID:执行命令 ps -aux

  • kill命令关闭对应的PID:执行命令 kill 对应的jar包的PID

实时查看日志命令:进入到对应的日志目录下面,执行 tail -f xx.log 命令,停止退出,执行ctrl+c


四 总结

如有错误恳请指正,如有侵权请联系我删除
参考文章:idea 打包的jar运行报 “XXX中没有主清单属性”
                 centos启动、关闭jar包服务

这篇关于运行jar包报 “XXX中没有主清单属性”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/836102

相关文章

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

HTML5中下拉框<select>标签的属性和样式详解

《HTML5中下拉框<select>标签的属性和样式详解》在HTML5中,下拉框(select标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中选择值的方式,本文将深入探讨select标签的... 在html5中,下拉框(<select>标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

springboot将lib和jar分离的操作方法

《springboot将lib和jar分离的操作方法》本文介绍了如何通过优化pom.xml配置来减小SpringBoot项目的jar包大小,主要通过使用spring-boot-maven-plugin... 遇到一个问题,就是每次maven package或者maven install后target中的ja

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

通过prometheus监控Tomcat运行状态的操作流程

《通过prometheus监控Tomcat运行状态的操作流程》文章介绍了如何安装和配置Tomcat,并使用Prometheus和TomcatExporter来监控Tomcat的运行状态,文章详细讲解了... 目录Tomcat安装配置以及prometheus监控Tomcat一. 安装并配置tomcat1、安装

Linux部署jar包过程

《Linux部署jar包过程》文章介绍了在Linux系统上部署Java(jar)包时需要注意的几个关键点,包括统一JDK版本、添加打包插件、修改数据库密码以及正确执行jar包的方法... 目录linux部署jar包1.统一jdk版本2.打包插件依赖3.修改密码4.执行jar包总结Linux部署jar包部署

mysqld_multi在Linux服务器上运行多个MySQL实例

《mysqld_multi在Linux服务器上运行多个MySQL实例》在Linux系统上使用mysqld_multi来启动和管理多个MySQL实例是一种常见的做法,这种方式允许你在同一台机器上运行多个... 目录1. 安装mysql2. 配置文件示例配置文件3. 创建数据目录4. 启动和管理实例启动所有实例