温馨提示×

centos如何批量编译java文件

小樊
35
2026-09-03 06:35:34
栏目: 编程语言

在 CentOS 上批量编译 Java 文件,常见有 命令行 javac通配符/递归编译使用构建工具(Maven/Gradle) 几种方式。下面按使用场景说明。


一、使用 javac 直接批量编译(最基础)

1️⃣ 编译当前目录下所有 .java 文件

javac *.java

2️⃣ 指定输出目录

javac -d ./out *.java

3️⃣ 编译多个目录

javac com/example/*.java com/utils/*.java

二、递归编译整个项目(子目录中的所有 java 文件)

CentOS 默认 shell 是 bash,javac 不支持 ** 通配符,需要用 find

方法 1:find + xargs(推荐)

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

或一行:

find . -name "*.java" | xargs javac -d out

方法 2:使用参数文件(大项目推荐)

find src -name "*.java" > sources.txt
javac -cp lib/* -d build @sources.txt

三、带依赖 jar 包编译

javac -cp "lib/*:." -d out $(find src -name "*.java")

⚠️ CentOS/Linux 用 : 分隔 classpath,不是 ;


四、使用 Maven(企业项目首选)

安装 Maven

yum install -y maven

编译

mvn compile

打包

mvn package

五、使用 Gradle

yum install -y gradle
gradle build

六、常见错误排查

1️⃣ javac: command not found

yum install -y java-1.8.0-openjdk-devel

2️⃣ 中文乱码

javac -encoding UTF-8 -d out *.java

3️⃣ 文件太多导致参数过长

✅ 使用 @sources.txt 方式


七、示例:标准 Java 项目结构编译

project/
├── src
│   └── com/example/Main.java
├── lib
│   └── xxx.jar
└── out
find src -name "*.java" > sources.txt
javac -cp "lib/*" -d out @sources.txt

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

  • Java 版本(8 / 11 / 17)
  • 是否使用 Spring / Maven
  • 是否是自动化脚本(CI / crontab)

我可以给你更精确的方案。

0