Debian的默认包管理器APT能自动解析和安装Java运行所需的依赖(如JRE/JDK、库文件)。操作步骤如下:
sudo apt update
sudo apt install openjdk-11-jdk # 安装JDK(包含javac编译器)
# 或仅安装JRE(仅运行Java程序)
sudo apt install openjdk-11-jre
java -version # 查看Java运行时版本
javac -version # 查看Java编译器版本(若安装JDK)
sudo apt --fix-broken install # 修复损坏的依赖关系
sudo apt install -f # 同上,简化命令
对于Java项目(如Spring Boot、Maven/Gradle工程),使用构建工具(Maven/Gradle)能更灵活地管理依赖,避免版本冲突。
sudo apt install maven
pom.xml文件中添加依赖(以JUnit 5为例):<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.9.0</version>
<scope>test</scope> <!-- 仅在测试时使用 -->
</dependency>
</dependencies>
mvn install,Maven会自动从中央仓库下载并安装所有依赖到本地仓库(~/.m2/repository)。sudo apt install gradle
build.gradle文件中添加依赖(以Apache Commons Codec为例):dependencies {
implementation 'org.apache.commons:commons-codec:1.16.0' // 编译和运行时依赖
testImplementation 'junit:junit:4.13.2' // 测试时依赖
}
gradle build,Gradle会将依赖下载到~/.gradle/caches/modules-2/files-2.1。若项目需要特定版本的Java(如Java 8、17),而APT仓库中没有所需版本,可手动下载并安装:
.tar.gz)。例如OpenJDK 11:wget https://github.com/adoptopenjdk/openjdk11-binaries/releases/download/jdk-11.0.20%2B8/OpenJDK11U-jdk_x64_linux_hotspot_11.0.20_8.tar.gz
/usr/lib/jvm目录(系统Java安装路径):sudo mkdir -p /usr/lib/jvm # 若目录不存在则创建
sudo tar -xzf OpenJDK11U-jdk_x64_linux_hotspot_11.0.20_8.tar.gz -C /usr/lib/jvm
update-alternatives工具管理多版本Java,避免冲突:sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-11.0.20+8/bin/java 100 # 注册Java可执行文件
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-11.0.20+8/bin/javac 100 # 注册javac编译器
sudo update-alternatives --config java # 交互式选择默认Java版本
java -version,确认已切换至目标版本。依赖冲突(如不同库依赖同一组件的不同版本)是常见的问题,解决方法如下:
sudo apt install -f
pom.xml中通过<exclusions>标签排除冲突的传递依赖。例如,排除log4j-core对log4j-api的依赖:<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.20.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
build.gradle中通过exclude方法排除冲突依赖。例如:implementation('org.apache.logging.log4j:log4j-core:2.20.0') {
exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
}
jEnv(Linux/macOS)或SDKMAN(跨平台)切换默认版本,避免版本冲突。例如使用SDKMAN:sdk install java 11.0.20-open # 安装OpenJDK 11
sdk use java 11.0.20-open # 切换至该版本
/etc/environment、项目配置文件),防止误操作导致系统故障。/var/log/syslog、/var/log/apt/term.log)获取详细错误信息,有助于定位问题根源。