1. Java环境未正确安装
错误表现:执行javac或java命令时提示“command not found”,或javac -version无输出。
原因:未安装JDK(Java Development Kit),或安装的JDK不包含开发工具(如仅安装了JRE)。
解决方法:
sudo yum install java-1.8.0-openjdk-devel -y(可根据需求替换为其他版本,如java-11-openjdk-devel);sudo yum localinstall jdk-*.rpm -y;javac -version,若显示版本信息则说明安装成功。2. JAVA_HOME环境变量未配置或配置错误
错误表现:javac命令无法识别,或java -version与javac -version版本不一致;运行程序时提示“找不到或无法加载主类”。
原因:JAVA_HOME未指向正确的JDK安装路径,或PATH未包含$JAVA_HOME/bin。
解决方法:
sudo update-alternatives --config java,记录路径(如/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.333.b01-1.el7_9.x86_64);~/.bashrc或/etc/profile),添加以下内容:export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk # 替换为实际路径
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bashrc(或source /etc/profile)。3. 编译器版本与源代码不兼容
错误表现:编译时提示“invalid flag: -source 1.8”(版本过低)或运行时提示“UnsupportedClassVersionError”(版本过高)。
原因:javac版本低于源代码要求的Java版本(如用Java 7编译Java 8代码),或运行时JVM版本低于编译版本。
解决方法:
-source 1.8表示需要Java 8);javac -source 1.8 -target 1.8 YourClass.java(确保-source与-target版本一致);sudo yum install java-11-openjdk-devel)。4. 缺少依赖库
错误表现:编译时提示“package com.example does not exist”(自定义类缺失)或“cannot find symbol”(第三方库缺失);运行时提示“NoClassDefFoundError”。
原因:未将依赖的JAR包或类文件添加到编译路径(-cp)中。
解决方法:
javac -cp ".:lib/*" YourClass.java(.表示当前目录,lib/*表示lib文件夹下的所有JAR包);java -cp ".:lib/*" YourClass;pom.xml配置依赖,执行mvn compile编译)。5. 文件路径或权限问题
错误表现:编译时提示“error: file not found: YourClass.java”(文件不存在);或“Permission denied”(无权限)。
原因:源文件路径错误(如使用了错误的相对路径),或当前用户对文件/目录无读写权限。
解决方法:
ls -l YourClass.java检查文件是否存在,若文件在子目录中,需使用正确路径(如javac src/com/example/YourClass.java);chmod 644 YourClass.java(允许用户读写,组和其他用户只读);sudo javac YourClass.java(谨慎使用,建议修复文件权限而非频繁使用sudo)。6. 编码格式问题
错误表现:编译时提示“编码GBK的不可映射字符”(常见于源代码包含中文等非ASCII字符)。
原因:源代码文件的编码格式(如UTF-8)与编译器默认编码(如GBK)不一致。
解决方法:
javac -encoding UTF-8 YourClass.java(若源代码为UTF-8);7. 类路径或主类名错误
错误表现:运行时提示“Error: Could not find or load main class YourClass”(主类未找到)。
原因:类名拼写错误(如HelloWorld与helloWorld大小写不一致)、类文件不在当前目录或-cp路径中,或CLASSPATH环境变量配置错误。
解决方法:
.class文件需在-cp指定的路径中(如java -cp . YourClass表示当前目录);rm -rf *.class,重新编译后再运行。