在 CentOS 上编译或运行 Java,关键是正确设置 JDK 路径(JAVA_HOME 和 PATH)。下面按常见场景一步步说明。
java -version
javac -version
java 没有 javac:只装了 JRE,需要安装 JDKsudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
如果是 Java 11 / 17:
sudo yum install -y java-11-openjdk java-11-openjdk-devel
readlink -f $(which java)
通常路径类似:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.xxx/jre/bin/java
JDK 主目录一般是:
/usr/lib/jvm/java-1.8.0-openjdk
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
验证:
echo $JAVA_HOME
javac -version
vi ~/.bashrc
或(所有用户):
sudo vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
⚠️ Java 9+ 不需要
CLASSPATH,可省略
source ~/.bashrc
vi Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello CentOS");
}
}
编译:
javac Hello.java
运行:
java Hello
✅ 没装 devel 包,或 JAVA_HOME/bin 没加入 PATH
✅ 一定要指向 JDK 目录,不是 jre
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
如果你用的是 CentOS 7 / 8、Java 8 / 11 / 17,或者 编译 Hadoop / Maven / Jenkins,可以告诉我具体场景,我可以给你更精确的配置。