温馨提示×

ubuntu怎么批量编译java

小樊
50
2026-10-04 10:26:44
栏目: 编程语言

在 Ubuntu 下“批量编译 Java”通常有以下几种常见场景,我按最常用 → 进阶给你说明,你可以直接照抄命令。


一、最简单:编译当前目录所有 .java 文件

javac *.java

✅ 适合:所有 .java 都在同一个目录、无包结构


二、递归编译整个项目(含子目录)

方法 1:使用 find(最常用)

find . -name "*.java" > sources.txt
javac -d out @sources.txt

说明:

  • find .:递归查找
  • sources.txt:源码列表
  • -d out:编译输出到 out 目录

方法 2:一行命令(不生成文件)

javac -d out $(find . -name "*.java")

⚠️ 文件特别多时可能报 “参数过长”,推荐用方法 1


三、有 package(包结构)的正确编译方式

假设结构:

src/com/example/Main.java
src/com/example/Util.java
find src -name "*.java" > sources.txt
javac -d bin @sources.txt

运行:

java -cp bin com.example.Main

四、使用通配符(Java 7+ 支持)

javac -d out src/**/*.java

⚠️ 依赖 shell 支持(bash 4+)


五、多个模块 / 多目录

javac -d out \
  src/main/java/*.java \
  src/utils/java/*.java

或用列表文件:

javac -d out @filelist.txt

filelist.txt 示例:

src/main/java/Main.java
src/utils/java/Util.java

六、强烈推荐:用构建工具(项目级)

Maven

mvn compile

Gradle

gradle build

✅ 自动处理依赖、批量编译、结构清晰


七、常见错误排查

❌ 找不到类
→ 检查 -cp 和 -d

❌ 包名和目录不一致
→ package com.xxx; 必须对应 com/xxx/

❌ 编码问题

javac -encoding UTF-8 *.java

总结(直接选一个用)

场景 命令
单目录 javac *.java
整个项目 find . -name "*.java" > l; javac -d out @l
正式项目 mvn / gradle

如果你愿意,可以告诉我:

  • Java 版本
  • 是否有 Maven / Gradle
  • 是否多模块

我可以给你完全定制的编译方案。

0 踩