java 编译单个文件_Gradle -- 如何编译单个java文件并运行其class

这篇博客介绍了如何使用Gradle来编译和运行单个Java文件。首先在`build.gradle`中创建`compilesingle`任务进行编译,指定源代码路径、包含的Java文件、类路径和输出目录。然后创建`execlass`任务运行编译后的class文件,设置类路径和主类。通过`apply from: 'single.gradle'`引入配置,并通过`compilesingle.execute()`和`execlass.exec()`手动执行任务。最后删除临时生成的bin目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人这次的尝试是第一次接触gradle,通常的经验自然是靠搜索+蹩脚的英文阅读能力。

首先这个功能分为2块,编译+运行。

在module中的build.gradle创建single.gradle

1.先介绍下单独编译java文件,代码如下

task compilesingle(type: JavaCompile) {source= './src/main/java'include "packagepath/Single.java"classpath= project.configurations.buildDependenciesdestinationDir= file('./bin')

}

packagepath表示该文件的包名路径,例如:

pacakge com.aa.bb

则packagepath = com/aa/bb

include "com/aa/bb/Single.java"

destinationDir表示class文件的输出路径,如果执行了编译任务后,Single.class会出现在bin/com/aa/bb文件夹下面

classpath表示需要使用到的三方库,需要预先设置

configurations {

buildDependencies

}

dependencies {

buildDependencies "com.google.code.gson:gson:2.3.1"}

这里在我们的Single.java使用到了gson库

2.运行编译过的class文件

现在我们获得了bin/com/aa/bb/Single.class,接着就是运行该文件,代码如下

task execlass(type: JavaExec) {

classpath= files('./bin', project.configurations.buildDependencies)

main= 'com.aa.bb.Single'}

这个无需解释了,在Single.java中有static main的方法。

好了,本以为添加了新的single.gradle,并且在该module工程下的build.gradle添加

apply from: 'single.gradle'

就可以了。结果编译+运行都没有执行。因为本人并不熟悉gradle的编译原理,而task即是任务,会一条条按序执行。既然他不执行,那我就手动执行这2个task。

compilesingle.execute()

execlass.exec()

这样就完事OK了,然后我们删除掉bin文件夹,毕竟这是个临时文件夹

delete file('./bin')

现在献上完整的single.gradle

configurations {

buildDependencies

}

dependencies {

buildDependencies "com.google.code.gson:gson:2.3.1"}

task execlass(type: JavaExec) {

classpath= files('./bin', project.configurations.buildDependencies)

main= 'com.aa.bb.Single'}

task compilesingle(type: JavaCompile) {source= './src/main/java'include "com/aa/bb/Single.java"classpath= project.configurations.buildDependenciesdestinationDir= file('./bin')

}

task flow {compilesingle.execute()execlass.exec()delete file('./bin')

}

然后在该module工程下的build.gradle添加

apply from: 'single.gradle'

这样只要点击gradle同步按钮,即可运行single.gradle,达到我预编译的目的。

有兴趣的同学可以一个个实现,看看效果。

PS:最后这些有用的信息都是在gradle的官网社区里面找到的

https://discuss.gradle.org/

再通过不断的调试完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值