在 CentOS 上编译 Java 时找不到类,通常不是系统问题,而是类路径(classpath)或包结构配置不对。下面按常见原因给你一个排查清单,基本都能解决。
.java 文件javac Hello.java
✅ 前提:
Hello.java 里 没有 packageHello.java 所在目录例如:
package com.example;
public class Hello {}
文件目录必须是:
com/example/Hello.java
编译方式 ✅:
javac com/example/Hello.java
❌ 错误方式:
cd com/example
javac Hello.java
javac -cp . com/example/Hello.java
javac -cp .:my.jar com/example/Hello.java
⚠️ CentOS 注意
: 分隔 classpath;.class 文件存在ls com/example/Hello.class
java -cp . com.example.Hello
❌ 错误:
java Hello
java -version
javac -version
javac 不存在sudo yum install java-1.8.0-openjdk-devel
或(推荐):
sudo yum install java-11-openjdk-devel
✅ classpath 没加 .
javac -cp . xxx.java
✅ package 和目录不一致
✅ jar 包没加进 classpath
✅ 用错分隔符(Linux 用 :)
javac -cp .:lib/* src/com/example/*.java
java -cp .:lib/* com.example.Main
你可以把下面信息发我:
javac 报错原文tree 或 ls)我可以直接告诉你该用哪条命令 ✅