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

打包可执行JAR时提示找不到主类test,求解决方法

可执行JAR文件无法找到主类的问题排查与解决

问题场景

为排查JAR打包问题简化了项目结构,具体信息如下:

文件结构

src\
src\test.java
src\test.class
MANIFEST.mf

test.java代码

import javax.swing.JOptionPane;

public class test {
    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, "Hello, World!");
    }
}

MANIFEST.mf内容

Main-Class: test

已确保MANIFEST文件末尾添加了换行

打包命令

jar cfm test.jar .\MANIFEST.mf .\src\test.class

运行错误

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

问题原因

当前打包命令会把src/test.class原封不动地放进JAR文件,导致JAR内部的目录结构为src/test.class。而MANIFEST.mf中指定的Main-Class: test,JVM会在JAR的根目录下寻找test.class文件,找不到就会抛出类未找到异常。

解决方法

有两种可行的解决方式:

方式一:调整打包命令,将class文件放到JAR根目录

使用-C参数切换到src目录后再打包class文件,这样class文件会被放到JAR的根路径:

jar cfm test.jar MANIFEST.mf -C src test.class

方式二:进入src目录后执行打包命令

先切换到src目录,再指定MANIFEST文件的路径:

cd src
jar cfm ../test.jar ../MANIFEST.mf test.class

执行以上任意一种方式打包后,再运行java -jar test.jar即可正常弹出对话框。

内容的提问来源于stack exchange,提问作者Xyon4

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:14:52