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

使用Gradle构建简单Java程序后:运行类与Jar文件疑问

问题解答:Gradle构建后运行主类&生成Jar的原因

一、如何运行TestMain.class

你遇到的错误是因为java命令的使用方式不对——它需要的是类的全限定名称,而不是类文件的路径,同时要指定正确的类路径(classpath)。你可以用以下两种方法解决:

方法1:进入类文件所在目录执行

先切换到编译后的类文件目录,再运行类名:

cd build/classes/main
java TestMain

方法2:通过-cp参数指定类路径

不用切换目录,直接用-cp(classpath的缩写)告诉JVM去哪里找你的类文件:

java -cp build/classes/main TestMain

更便捷的方式:让Gradle帮你运行

如果不想手动处理路径,可以给你的项目添加application插件,让Gradle直接管理运行流程。修改你的build.gradle:

apply plugin: 'java'
apply plugin: 'application' // 添加应用插件

mainClassName = 'TestMain' // 指定你的主类名称

repositories {
    jcenter()
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.21'
    testCompile 'junit:junit:4.12'
}

然后执行以下命令就能直接运行主类:

./gradlew run

二、为什么生成building-java-file.jar

你当初执行的是gradle init --type java-library,这个命令初始化的是Java库项目。Java Library插件的默认行为就是将编译后的类文件打包成Jar——这个Jar是用来作为依赖库给其他Java项目使用的,而不是可直接运行的应用Jar(它没有指定主类入口)。

如果你的目标是创建一个可独立运行的Java应用,当初应该用java-application类型初始化:

gradle init --type java-application

这种类型的项目默认会配置application插件,生成的Jar会包含主类信息,也支持直接通过Gradle运行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:35:32