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

Gradle构建生成脚本运行报错:无法找到或加载主类如何解决?

解决Gradle Application插件脚本找不到主类的问题

问题根源

直接运行app/build/scripts/myproj时,脚本的类路径未正确包含编译后的类文件及依赖jar包,导致JVM无法定位主类。application插件默认生成的脚本需要配合完整的分发目录结构(含lib目录的依赖包)才能正常工作,仅执行build任务只会生成瘦jar和未配置完整类路径的脚本。

可行修复方案

方案1:生成完整分发包(推荐用于生产/分发)

执行Gradle的分发任务,生成包含所有依赖和正确类路径的可执行包:

gradle distZip
# 或生成tar格式包
gradle distTar

任务完成后,在app/build/distributions/目录下找到压缩包,解压后进入bin目录,运行其中的myproj脚本即可正常启动。

方案2:临时修改脚本类路径(仅用于本地调试)

若想直接运行build/scripts下的脚本,可修改application配置,让脚本强制使用完整的运行时类路径:

application {
    mainClass = 'com.anentropic.myproj.MyProj'
    applicationName = "myproj"
    // 配置JVM参数,指定完整运行时类路径
    applicationDefaultJvmArgs = ["-cp", sourceSets.main.runtimeClasspath.asPath]
}

重新执行gradle build后,即可直接运行app/build/scripts/myproj。但该方式依赖本地Gradle构建目录,不适合分发。

方案3:生成可执行Fat Jar(备选)

如果不需要shell脚本,可配置jar任务生成包含所有依赖的可执行jar:

jar {
    archiveBaseName = "myproj"
    manifest {
        attributes 'Main-Class': 'com.anentropic.myproj.MyProj'
    }
    // 将所有依赖打包进jar
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

执行gradle jar后,在app/build/libs/myproj.jar路径下,直接用以下命令运行:

java -jar app/build/libs/myproj.jar

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:15:46