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

Java报错Could not find or load main class,Gradle构建下求排查

问题分析与解决方法

你的核心问题是直接在源文件目录运行java命令,但没有先编译代码,且类路径(classpath)指向错误——Gradle编译后的class文件不会存放在源文件目录,你得先完成编译,再针对编译产物运行命令。

第一步:先通过Gradle编译项目

在项目根目录(project/)下执行以下命令,生成编译后的class文件:

gradle compileJava

编译完成后,class文件会被放在project/build/classes/java/main/目录下,这才是Java能识别的类文件根目录。

第二步:正确运行主类的两种方式

方式1:用Gradle直接运行(最简便)

在项目根目录执行:

gradle run

注意:需要在project/build.gradle中添加application插件并指定主类,否则Gradle不知道要运行哪个类。配置示例:

plugins {
    id 'application'
}

// 新版Gradle用这个
application {
    mainClass = 'org.example.Main'
}

// 旧版Gradle可改用
// mainClassName = 'org.example.Main'

方式2:手动用java命令运行

进入编译产物的根目录,再执行命令:

cd project/build/classes/java/main/
java org.example.Main

或者在任意目录,通过-cp参数指定类路径根:

java -cp project/build/classes/java/main org.example.Main

你之前的命令错误原因

  • 直接在src/main/java/下运行java org.example.Main:Java会在当前目录(src/main/java/)找org/example/Main.class,但这里只有.java源文件,没有编译后的.class文件,自然找不到。
  • 尝试的java -classpath org/example Main:类路径设为org/example,Java会在该路径下找Main.class,但你的主类带包名org.example,Java需要从类路径根开始找org/example/Main.class,所以这个路径完全错误。
  • java -classpath ../../../ org/example/Main:../../../回到了project/目录,但类路径根应该指向编译后的build/classes/java/main/,而非项目根目录,所以也找不到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:23:22