解决IntelliJ IDEA执行maven打包,执行java -jar命令提示jar中没有主清单属性

这篇具有很好参考价值的文章主要介绍了解决IntelliJ IDEA执行maven打包,执行java -jar命令提示jar中没有主清单属性。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题场景

IDEA执行mvn clean package -DskipTest=true命令或者借助工具的Maven菜单进行打包操作,然后执行java -jar app.jar命令后,提示jar中没有主清单属性


D:\WorkSpace\demo\target>java -jar demo-SNAPSHOT.jar
demo-SNAPSHOT.jar中没有主清单属性

原因分析

这个错误通常是由于生成的JAR文件缺少一个主清单属性引起的。在使用java -jar命令运行JAR文件时,JVM需要查找JAR文件中包含Main-Class属性的清单文件。如果没有找到这个属性,就会出现该错误。

验证分析

打开Jar包,查看其构建的jar目录,可以看到有一个MANIFEST.MF文件。该文件就是jar运行时要查找的清单目录,其中主清单数据,就是要运行的主类,即main函数入口所在的类

没有主清单属性,其他,java,intellij-idea,maven
正常情况下,该清单文件内会有一个:

Main-Class:cn.ybzy.demo.mainDemo

解决方案

添加Main-Class

手动创建一个包含Main-Class清单属性的MANIFEST.MF文件,然后将其添加到JAR文件中

打开Jar包,在MANIFEST.MF文件中,添加Main-Class主类

Main-Class:cn.ybzy.demo.mainDemo

使用插件

1.使用maven-jar-plugin插件

在pom.xml文件中使用maven-jar-plugin插件,并在其中指定了<mainClass>属性。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.example.MainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

2.使用maven-shade-plugin插件文章来源地址https://www.toymoban.com/news/detail-752575.html

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.2.4</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>com.example.MainClass</mainClass>
                </transformer>
              </transformers>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

到了这里,关于解决IntelliJ IDEA执行maven打包,执行java -jar命令提示jar中没有主清单属性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Maven打包可执行jar包方法大全(史上最全)

    目录 打包方法 方法一:使用maven-jar-plugin和maven-dependency-plugin 方法二:使用maven-assembly-plugin (推荐) 方法三:使用maven-shade-plugin 方法四:使用onejar-maven-plugin 方法五:使用spring-boot-maven-plugin 方法六:使用tomcat7-maven-plugin 参考   方法一:使用maven-jar-plugin和maven-dependency-plugin 首先

    2024年02月13日
    浏览(34)
  • Maven 生成(打包)带有依赖的可以直接执行的一个 jar 包

    在pom中增加如下内容      运行打包命令:mvn clean compile assembly:single

    2024年02月13日
    浏览(25)
  • java-IDEA MAVEN查看依赖树,解决jar包重复和冲突

       如果这里面的依赖关系有红线,就说明有包冲突,一般都是版本不一致,可以在idea里下一个插件 Maven Helper, 点击install并重启IDEA  打开pom.xml文件,在下方会出现Dependency Analyzer,选择它会出现重复依赖列表,选择对应的依赖,右键红色部分选择Exclude,然后选择上面的reimport就可

    2024年02月13日
    浏览(39)
  • 使用IDEA和Maven打包Jar包的详细方法

    使用IDEA和Maven打包Jar包的详细方法 在大数据开发中,使用IDEA和Maven进行项目管理和打包是常见的做法。本文将详细介绍如何使用IDEA和Maven打包Jar包,并提供相应的源代码。 步骤1:创建Maven项目 首先,我们需要在IDEA中创建一个Maven项目。在IDEA的欢迎界面中,点击\\\"Create New Pr

    2024年02月06日
    浏览(35)
  • 【亲测有效】解决idea中maven项目的pom文件不会自动下载jar包问题 + 更新不完整依赖命令

    一杯茶,一袋烟,一个bug改一天,唉~ 一天下来整个人都麻了; 废话不多说了,作者创作本文旨在使用言简意赅的语言为同样遇到此问题的伙伴们尽快解决困难,少走弯路。 看问题:idea中maven项目的pom文件不会自动下载jar包 setting —— maven —— 去掉work offline 的勾 Settings -

    2024年02月06日
    浏览(38)
  • JAR包命令解压以及再命令打包(windows maven)

    1、将JAR包进行解压 如D:demotest.jar,在cmd中切到D:demo执行以下命令: 2、重新打成JAR包 执行命令后会把test.jar包解压到D:demo目录下,替换class或者lib中的jar包后进行重新打jar包 第一种打包方式: 第二种打包方式: 注:maven项目如果通过第一种打包方式,打包后运行时提示缺少

    2024年02月16日
    浏览(37)
  • Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行

    使用IDEA自带打包工具,可以将自己引入的第三方jar包(lib下的jar包,非pom文件中)打包到jar中。 Artifacts是maven中的一个概念,表示某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式; Artifacts,它的作用是整合编译后的 java 文件,资源文件等,有不同的整合

    2024年02月12日
    浏览(37)
  • idea新建Java-maven项目时,出现Dependency ‘ xxx(jar包名)‘ not found的解决方案

    项目场景: 使用idea创建maven项目时,导入简单依赖时(本文以mysql-connector-java为例)。 问题: 首先,在创建新的maven项目中,出现下列两种情况: (1)输入dependency要导入依赖时,idea没有jar包名的提示。 (2)输入完整包名后,颜色为 红色 。 真实场景如下: 刷新maven,尝试

    2024年02月11日
    浏览(37)
  • maven项目引入私有jar,并打包到java.jar中

    私有jar存放位置 maven依赖 maven build

    2024年03月11日
    浏览(48)
  • idea使用命令将jar包导入到maven仓库中

    因为今天突然忘了命令,记下来方便以后查看 pom文件的依赖 jar包路径 进入idea中命令窗 输入命令 命令模板

    2024年02月15日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包