首先确认系统中安装的Java版本和项目要求的版本是否一致。使用以下命令查看当前Java编译器(javac)和运行时(java)版本:
javac -version
java -version
若版本低于项目要求(如项目需要Java 11,而系统默认是Java 8),需安装对应版本并切换默认版本。
若项目需要多版本切换,可通过以下命令安装所需JDK(以OpenJDK为例):
sudo apt update
sudo apt install openjdk-8-jdk # 安装Java 8
sudo apt install openjdk-11-jdk # 安装Java 11
安装完成后,可通过java -version查看所有已安装版本。
Ubuntu自带的update-alternatives工具可管理系统默认Java版本:
sudo update-alternatives --config java
sudo update-alternatives --config javac
java -version和javac -version,确认版本已变更。若需要更便捷的多版本切换,推荐使用jenv或sdkman:
jenv:
git clone https://github.com/jenv/jenv.git ~/.jenv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(jenv init -)"' >> ~/.bashrc
source ~/.bashrc
jenv add /usr/lib/jvm/java-8-openjdk-amd64
jenv add /usr/lib/jvm/java-11-openjdk-amd64
jenv global 11.0.24,当前终端临时切换用jenv shell 8.0.422。sdkman:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java 11.0.11-open
sdk use java 11.0.11-open(临时)或sdk default java 11.0.11-open(永久)。若项目本身配置了错误的Java版本,需调整构建工具的配置:
pom.xml中添加以下属性,指定编译和目标版本:<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
build.gradle中添加:java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
Ctrl+Shift+P搜索“Java: Configure Java Runtime”,选择对应版本。切换版本前,建议清理项目的编译残留(如target/、*.class文件),避免旧版本字节码与新编译器冲突:
rm -rf target/ *.class
重新编译项目:
javac -source 11 -target 11 YourClass.java
或使用构建工具(如mvn clean compile、gradle build)。
最后,通过运行项目或测试用例,确认编译和运行均无版本相关错误。若仍有问题,检查依赖库是否支持当前Java版本(如使用mvn dependency:tree查看依赖树)。