服务器启动jar包的时候报”no main manifest attribute“异常(快捷解决)

news/2024/9/17 17:22:08/ 标签: jar, java, 服务器, 运维, 学习方法, 程序人生

所以,哥们,又出现问题咯.没事,我也出现了,哈哈哈哈哈,csdn感觉太麻烦了,所以搞了一篇这个. 没得事,往下看,包解决的.

希望可以帮助到各位,感谢阅览!

小手点个赞,作者会乐烂哈哈哈哈哈哈😆😆😆😆

问题描述

启动 jar 包的时候报错no main manifest attribute“异常

这条错误信息表明在尝试运行java_gobang-0.0.1-SNAPSHOT.jar时遇到了问题,没有找到主清单属性。在Java中,当试图运行一个JAR文件时,它需要包含一些必要的主清单属性,尤其是Main-Class属性,该属性指定了JAR文件的主类。

主清单属性的用途

  • Main-Class: 指定JAR文件的主类,即程序的入口点。
  • 其他常用属性还包括Class-Path(指定类路径)、Manifest-Version(指定清单版本)等。

解决方法

1. 生成包含主类的清单文件:

  • 现在一般使用Maven或Gradle构建项目,可以在构建配置中添加清单文件的配置。

  • 对于Maven,1.要在pom.xml文件中添加如下配置:(要配置这个插件)

  • 1<build>
    2    <plugins>
    3        <plugin>
    4            <groupId>org.apache.maven.plugins</groupId>
    5            <artifactId>maven-jar-plugin</artifactId>
    6            <version>3.2.0</version>
    7            <configuration>
    8                <archive>
    9                    <manifest>
    10                        <mainClass>com.example.MainClass</mainClass>
    11                    </manifest>
    12                </archive>
    13            </configuration>
    14        </plugin>
    15    </plugins>
    16</build>

    这里,<mainClass>标签应替换为应用程序的主类全限定名。类似如下:

(注意: 这里的skip 要设置为 false  我当时问题就出在这)

<skip>true</skip>标签。这会导致Maven构建过程中跳过spring-boot-maven-plugin的默认生命周期,这意味着不会自动创建包含Main-Class属性的可执行JAR文件。所有要么移除,要么设false

  • 对于Gradle,可以在build.gradle文件中添加如下配置:

    1jar {
    2    manifest {
    3        attributes 'Main-Class': 'com.example.MainClass'
    4    }
    5}

    同样地,com.example.MainClass应替换为你的主类全限定名。

2. 检查JAR文件的清单文件:

  • 使用文本编辑器打开java_gobang-0.0.1-SNAPSHOT.jar文件中的META-INF/MANIFEST.MF文件,检查是否有Main-Class属性。
  • 如果找不到该文件或属性缺失,就创建或修改这文件。

手动添加清单文件:创建的MANIFEST.MF文件内容应该像这样:

如果不使用构建工具,可以手动创建一个MANIFEST.MF文件,并将其放置在META-INF目录下。

1Main-Class: com.example.MainClass
2Manifest-Version: 1.0


http://www.ppmy.cn/news/1506860.html

相关文章

四数之和(LeetCode)

题目 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#xff09;&#xff1a; 0 <…

c++ - c++11(2)

文章目录 一、可变模板参数1、概念2、可变模板参数展开3、使用场景 二、 lambda表达式1、引入2、 lambda表达式语法3、演示4、函数对象 三、 包装器1、function包装器2、bind包装器 一、可变模板参数 1、概念 C11的新特性可变参数模板能够让您创建可以接受可变参数的函数模板和…

cmake基于语法和应用

CMake中的变量 变量和含义 常用变量含义PROJECT_NAME工程名变量PROJECT_SOURCE_DIR顶层的项目目录PROJECT_BINARY_DIR使用cmake的路径CMAKE_ROOTCMAKE安装的根目录CMAKE_BUILD_TYPE编译类型&#xff1a;empty&#xff0c;Debug&#xff0c;Release…CMAKE_SOURCE_DIR顶层的CMak…

qt-02代码创建控件 -- 信号和槽

代码创建控件 dialog.hdialog.cppmain.cpp dialog.h #ifndef DIALOG_H #define DIALOG_H #include <QLabel> #include <QLineEdit> #include <QPushButton>#include <QDialog>class Dialog : public QDialog {Q_OBJECTpublic:Dialog(QWidget *parent …

sql注入——sqlilabs1-15

目录 sql注入靶场练习--sqlilabs 1.less-1​编辑 1.测试发现单引号为逃逸符号 2.确定查询列数为三列 3.查询到数据库名 4.查询数据库中的表名 5.查询用户表的列名字 6.查询用户信息 2.less-2​编辑 2.确定查询列数为三列 3.查询到数据库名 4.查询数据库中的表名 5.…

ue4.27 C++ 解析内容为json的字符串

json字符串为 R"({"x": -1870.0, "y": -11400.0})"&#xff0c;里面内容是个json对象。 const FString& Message R"({"x": -1870.0, "y": -11400.0})"; TSharedRef<TJsonReader<>> Reader TJs…

Android笔试面试题AI答之Kotlin(4)

文章目录 14.Kotlin 相对于 Java 的优势 &#xff1f;1. 简洁性2. 安全性3. 高效性4. 互操作性5. 工具支持6. 官方支持 15. Kotlin 有哪些缺点&#xff1f;1. 编译速度2. 学习曲线3. 生态系统成熟度4. 运行时性能5. 社区支持6. 并发计算支持 16. Kotlin 暂停和阻塞有什么区别&a…

分享一个基于Spring Boot的救灾物资调动系统的设计与实现(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

智驭灌区,科技领航—— 高效灌区信息化系统管理平台

在水资源日益珍贵的今天&#xff0c;传统灌区的粗放式管理模式已难以满足现代农业的发展需求。我们自豪地推出——灌区信息化系统管理平台&#xff0c;以科技赋能水利&#xff0c;引领灌溉管理进入智能化、精细化新时代。 【智能决策&#xff0c;精准灌溉】 告别传统灌溉的盲目…

Job任务调度系统

实现一个任务调度系统&#xff0c;这篇文章就够了_schedulerx 开源调度系统-CSDN博客

【vulhub靶场之rsync关】

一、使用nmap模块查看该ip地址有没有Rsync未授权访问漏洞 nmap -p 873 --script rsync-list-modules 加IP地址 查看到是有漏洞的模块的 二、使用rsync命令连接并读取文件 查看src目录里面的信息。 三、对系统中的敏感文件进行下载——/etc/passwd 执行命令&#xff1a; rsy…

Trying to access array offset on value of type null 解决方案

昨天在系统用的好好的&#xff0c;突然页面发生了报错&#xff0c;Trying to access array offset on value of type null这个问题通常只有两种情况会发生 1.PHP版本出错 这个是php7.4版本的一个错误&#xff0c;最好的方法就是改变&#xff0c;只要不使用PHP7.4版本问题就能解…

云计算的三大服务模式:IaaS、PaaS、SaaS的深入解析

在数字化转型的浪潮中&#xff0c;云计算以其独特的灵活性、可扩展性和成本效益&#xff0c;正逐渐成为企业IT架构的核心。云计算提供了三种主要的服务模式&#xff0c;分别是基础设施即服务&#xff08;IaaS&#xff09;、平台即服务&#xff08;PaaS&#xff09;和软件即服务…

计算机网络 6.3Internet组成6.4Internet地址

第三节 Internet组成 一、基本结构及特点 1.Internet结构类型&#xff1a;分层网络互联群体。 2.主要构成&#xff1a;①主干网&#xff1b;②中间层网&#xff1b;③底层网。 3.结构特点&#xff1a; ①对用户隐藏网间连接的底层节点。 ②不指定网络互联的拓扑结构。 ③…

学懂C++ (十三):高级教程——C++ 文件和流详解

C 文件和流详解 在C编程中&#xff0c;除了使用iostream标准库进行标准输入和输出&#xff08;使用cin和cout&#xff09;外&#xff0c;还可以使用fstream标准库来处理文件的输入和输出。fstream库定义了三个主要的数据类型&#xff1a; ofstream&#xff1a;输出文件流&…

贪吃蛇之身子向右移动

定义一个con指令&#xff0c;当con等于向右指令时&#xff0c;移动身子&#xff0c;并且要更新一次地图 地图里面还要使用 move函数 移动游标位置 闲置的空间我们要及时去free 否则会影响下次身子的 身子的移动可以解析为生成一个新的身子和删除一个旧的身子&#xff0c; 将…

刷题——字符串转IP地址

数字字符串转化成IP地址_牛客题霸_牛客网 vector<string> restoreIpAddresses(string s) {int len s.length();vector<string> res;for(int i1; i<4 && len -2; i)//第一个.前{for(int ji1; j<i4 && j < len-1; j)//第二个.前{for(int k…

K8S Harbor

Harbor是一个由VMware公司开源的企业级Docker Registry项目&#xff0c;旨在帮助用户迅速搭建一个企业级的Docker Registry服务。 简介 定义&#xff1a;Harbor是一个由VMware公司开源的企业级Docker Registry&#xff0c;用于存储、签名和扫描内容。它提供了安全的、基于角色…

LVS实验——部署NAT模式集群

目录 一、实验需求 二、实验环境搭建 1、LVS 2、webserver1 3、webserver2 三、搭建 1、LVS 2、webserver 3、在LVS中进行检测测试 4、保存调度命令 LVS简介 Linux Virtual Server&#xff0c;负载调度器&#xff0c;内核集成 VS: Virtual Server&#xff0c;负责调度…

web基础与http协议与配置

目录 一、web基础 1.1 DNS与域名&#xff08;详解看前面章节&#xff09; 1.2 网页的概念&#xff08;HTTP/HTTPS&#xff09; 1.2.1 基本概念 1.2.2 HTML文档结构(了解) 1.2.3 web相关重点 1.2.4 静态资源和动态资源 二、http协议 2.1 概述 2.2 cookie和session&…