在 CentOS 上用脚本编译 Java 程序,通常就是写一个 Shell 脚本,调用 javac 来编译,再用 java 运行。下面从环境准备 → 简单脚本 → 多文件/项目脚本一步步说明。
sudo yum install -y java-1.8.0-openjdk-devel
或 Java 11:
sudo yum install -y java-11-openjdk-devel
java -version
javac -version
有 javac 说明可以编译。
// Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello CentOS");
}
}
build.sh#!/bin/bash
javac Hello.java
java Hello
chmod +x build.sh
./build.sh
project/
├── src/
│ ├── Main.java
│ └── util/
│ └── Tools.java
├── out/
└── build.sh
#!/bin/bash
SRC_DIR=src
OUT_DIR=out
# 创建输出目录
mkdir -p $OUT_DIR
# 编译所有 java 文件
find $SRC_DIR -name "*.java" > sources.txt
javac -d $OUT_DIR @sources.txt
rm sources.txt
# 运行
java -cp $OUT_DIR Main
chmod +x build.sh
./build.sh
lib/xxx.jar
src/Main.java
#!/bin/bash
javac -cp "lib/*" -d out src/*.java
java -cp "out:lib/*" Main
⚠️ CentOS / Linux 用 : 分隔 classpath
Windows 才是 ;
JAVAC = javac
SRC = $(shell find src -name "*.java")
OUT = out
all:
mkdir -p $(OUT)
$(JAVAC) -d $(OUT) $(SRC)
run:
java -cp $(OUT) Main
clean:
rm -rf $(OUT)
使用:
make
make run
javac: command not found→ 没装 JDK,只装了 JRE
javac -encoding UTF-8 *.java
nohup java -cp out Main > app.log 2>&1 &
如果你愿意,可以告诉我:
我可以直接帮你写可用的完整脚本。