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

Java打jar包运行提示找不到或无法加载主类问题解决方案求助

错误原因

你遇到的问题由两个配置错误共同导致:

  • Main-Class配置不符合规范:MANIFEST.MF中的主类配置仅需要填写类的全限定名,不需要加.class后缀,你的类没有归属包,直接写Something即可。
  • 类文件路径错误:你在项目根目录直接打包src\*.class时,生成的jar包内部会保留src目录结构,主类实际存放在jar包的src/Something.class路径下,JVM默认从jar包根目录查找主类,自然找不到对应类。

正确打包步骤

  1. 执行以下命令打包(不需要提前切换目录):
jar -cvef Something Something.jar -C src/ .

参数说明:

  • -e Something:指定主类为无后缀的Something,会自动写入MANIFEST.MF
  • -C src/ .:切换到src目录后,将该目录下的所有class文件打入jar包的根路径,不会带src目录前缀
  1. 验证打包结果(可选)
    解压生成的Something.jar,确认两处配置:
  • META-INF/MANIFEST.MF中存在Main-Class: Something配置项
  • jar包根目录下存在Something.class、IDiffPresenter.class、DiffPresenter.class等所有需要的类文件
  1. 运行jar包
    使用原有命令即可正常启动:
java -jar Something.jar

注意事项

如果你的项目依赖第三方jar包,上述打包方式不会自动合并依赖,运行时会抛出依赖类找不到的错误。你可以选择两种方案处理:

  • 手动在MANIFEST.MF中添加Class-Path: 你的依赖jar包路径配置项
  • 将第三方依赖jar解压后和你的业务类一起打进同一个jar包(即所谓的fat jar)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:54:00