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

Gradle构建Java项目报错:无法找到主类com.cestmoi.gradle_tut

Gradle Java项目主类找不到问题排查

环境与问题描述

使用Gradle 8.5 + Java 17.0.7 LTS构建第一个Java项目,按教程执行到21分钟步骤时,运行jar包出现如下错误:

Error: Could not find or load main class com.cestmoi.gradle_tut
Caused by: java.lang.ClassNotFoundException: com.cestmoi.gradle_tut

项目目录结构

C:\Users\tgmjack\Desktop\java\gradle_tut>tree /F
Folder PATH listing
Volume serial number is C037-C26A
C:.
│   .gitattributes
│   .gitignore
│   build.gradle
│   gradlew
│   gradlew.bat
│   settings.gradle
│
├───.gradle
│   │   file-system.probe
│   │
│   ├───8.5
│   │   │   gc.properties
│   │   │
│   │   ├───checksums
│   │   │       checksums.lock
│   │   │
│   │   ├───dependencies-accessors
│   │   │       dependencies-accessors.lock
│   │   │       gc.properties
│   │   │
│   │   ├───executionHistory
│   │   │       executionHistory.bin
│   │   │       executionHistory.lock
│   │   │
│   │   ├───fileChanges
│   │   │       last-build.bin
│   │   │
│   │   ├───fileHashes
│   │   │       fileHashes.bin
│   │   │       fileHashes.lock
│   │   │
│   │   └───vcsMetadata
│   ├───buildOutputCleanup
│   │       buildOutputCleanup.lock
│   │       cache.properties
│   │       outputFiles.bin
│   │
│   └───vcs-1
│           gc.properties
│
├───build
│   ├───libs
│   │       gradle_tut.jar
│   │
│   └───tmp
│       └───jar
│               MANIFEST.MF
│
└───gradle
    │   libs.versions.toml
    │
    ├───src
    │   └───main
    │       └───java
    │           └───com
    │               └───cestmoi
    │                       gradle_tut.java
    │
    └───wrapper
            gradle-wrapper.jar
            gradle-wrapper.properties

源码文件(gradle_tut.java)

package com.cestmoi;

public class gradle_tut {
    public static void main(String[] args){
        System.out.println("oh my days");
    }
}

构建配置(build.gradle)

plugins{
    id 'java'
}

jar{
    manifest {
        attributes 'Main-Class': 'com.cestmoi.gradle_tut'
    }
}

问题解答

  1. 错误原因
    核心问题是源码目录不符合Gradle默认约定。Gradle的Java插件默认会从项目根目录下的src/main/java读取源码,但你的源码放在了gradle/src/main/java目录下,Gradle不会扫描这个路径编译代码,导致生成的jar包中没有com.cestmoi.gradle_tut.class文件,运行时自然找不到主类。

  2. 修复方法

  • 移动源码目录:将gradle/src/main/java整个目录剪切到项目根目录,让src文件夹与build.gradle、settings.gradle同级。
  • 重新构建:在项目根目录执行命令gradlew.bat clean build(Windows)或./gradlew clean build(Linux/macOS),清理旧构建产物并重新编译打包。
  • 运行jar包:执行java -jar build/libs/gradle_tut.jar验证结果。
  1. 额外信息需求
    目前提供的信息已经足够定位问题。如果修复后仍报错,可以补充以下内容:
  • 执行gradlew compileJava命令后的完整输出日志
  • 解压build/libs/gradle_tut.jar后,查看内部是否存在com/cestmoi/gradle_tut.class文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 11:37:35