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

如何从命令行递归编译stacks包中的所有Java类?

递归编译stacks包下所有Java类的方案

以下几种方式可以帮你自动递归编译stacks包下的所有.java文件,无需手动逐个指定类文件:

1. 支持递归通配的Shell(如Bash、Zsh)

直接使用**通配符匹配所有子目录中的.java文件:

javac stacks/**/*.java

如果你的Bash版本默认未启用递归通配,先执行以下命令开启globstar选项再编译:

shopt -s globstar
javac stacks/**/*.java

2. 跨Unix-like系统通用(用find命令)

通过find递归查找所有目标文件,一次性传递给javac编译:

find stacks -name "*.java" -exec javac {} +

-exec {} +会将找到的所有文件批量传给javac,比逐个执行更高效。

3. Windows环境适配

  • CMD命令行:用for /R遍历递归目录:
for /R stacks %f in (*.java) do javac "%f"

如果是在批处理脚本中,需将%f替换为%%f。

  • PowerShell:通过递归获取文件对象执行编译:
Get-ChildItem -Path stacks -Recurse -Filter *.java | ForEach-Object { javac $_.FullName }

进阶方案:使用构建工具

如果后续会频繁添加类或处理依赖,推荐用Maven、Gradle这类构建工具。只需配置好项目结构,执行mvn compile(Maven)或gradle compileJava(Gradle)即可自动完成所有类的编译、依赖管理等工作,比手动操作javac更高效可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 20:02:12