You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 21环境下Maven构建Jar包后无法运行,提示找不到或无法加载主类

Java 21环境下Maven构建Jar包后无法运行,提示找不到或无法加载主类

老兄,我来帮你排查这个新手常踩的坑!你提到用Maven构建Jar后运行报错,结合你给出的错误信息和MANIFEST配置,我们一步步来解决:

首先看你的报错内容:

Error: Could not find or load main class SimpleProj.jar
Caused by: java.lang.ClassNotFoundException: SimpleProj.jar

这里第一个大概率的问题是你用错了运行命令!很多刚接触的同学会直接敲 java SimpleProj.jar,但Java运行Jar包必须加 -jar 参数,正确的命令应该是:

java -jar SimpleProj.jar

如果少了 -jar,Java会把整个Jar文件名当成主类名去查找,自然就找不到了,先试试把命令改对,说不定问题直接就解决了!

要是改完命令还是报错,那就要看你MANIFEST.MF里的主类配置了:

Manifest-Version: 1.0
Created-By: Maven JAR Plugin 3.4.1
Build-Jdk-Spec: 21
Main-Class: main.java.AppMain

这里的 main.java.AppMain 肯定有问题!Maven的 src/main/java 是源码存放目录,这个目录本身不属于包名的一部分。你得打开你的 AppMain.java 文件,看开头的 package 声明:

  • 比如如果你的 AppMain.java 放在 src/main/java/main/ 目录下,文件开头是 package main;,那正确的Main-Class应该是 main.AppMain
  • 要是你的类在 src/main/java/com/myproj/ 下,开头是 package com.myproj;,那Main-Class就是 com.myproj.AppMain

如果你怕Maven自动生成的MANIFEST出问题,还可以在pom.xml里手动指定主类,这样更稳妥。在pom.xml的 <build> 节点下添加Jar插件的配置:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.4.1</version>
        <configuration>
            <archive>
                <manifest>
                    <!-- 这里替换成你正确的主类全限定名 -->
                    <mainClass>main.AppMain</mainClass>
                </manifest>
            </archive>
        </configuration>
    </plugin>
</plugins>

配置完后,执行 mvn clean package 重新打包,再用正确的 java -jar 命令运行,应该就能正常启动了。

备注:内容来源于stack exchange,提问作者jbinbama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:18:08