在 Debian 上“批处理 Java 编译”通常指用脚本一次性编译多个 Java 文件 / 多个项目 / 定期自动编译。下面按常见场景给你几种做法。
javac 批量编译.javajavac -d out $(find src -name "*.java")
或:
mkdir -p out
javac -d out src/**/*.java
javac -d out src/*.java
⚠️ 注意:bash 默认不递归,复杂项目推荐 find。
build.sh#!/bin/bash
set -e
SRC_DIR=src
OUT_DIR=out
rm -rf $OUT_DIR
mkdir -p $OUT_DIR
find $SRC_DIR -name "*.java" > sources.txt
javac -d $OUT_DIR @sources.txt
echo "编译完成"
运行:
chmod +x build.sh
./build.sh
for dir in project1 project2 project3; do
echo "编译 $dir"
javac -d $dir/out $(find $dir/src -name "*.java")
done
JAVAC = javac
SRC = $(shell find src -name "*.java")
OUT = out
all:
mkdir -p $(OUT)
$(JAVAC) -d $(OUT) $(SRC)
clean:
rm -rf $(OUT)
make
mvn clean compile
批量多个模块:
mvn -q clean install
gradle build
每天凌晨编译:
crontab -e
0 2 * * * /home/user/build.sh >> /var/log/java_build.log 2>&1
sudo apt update
sudo apt install default-jdk
java -version
javac -version
javac -encoding UTF-8 -d out src/*.java
javac -cp "lib/*" -d out src/*.java
如果你能说明:
我可以直接给你一套完整方案。