当前位置: 首页 > news >正文

在 Kali Linux 上安装 Java OpenJDK 8(详细指南)

前置知识

  • Kali Linux:本文假设你使用的是最新版本的 Kali Linux,且具有管理员权限(sudo 或 root 权限)。
  • OpenJDK 8:OpenJDK 是 Java Development Kit (JDK) 的开源实现,包含运行 Java 程序所需的 Java Runtime Environment (JRE) 和编译 Java 代码的工具(如 javac)。
  • 为什么选择 8u202:某些遗留应用或工具可能需要特定的 Java 8 版本。本文使用 8u202 作为示例,但方法适用于其他 OpenJDK 8 版本。
  • 所需工具:确保你的系统中已安装 wgettar 和文本编辑器(如 mousepadnano)。

如果你的系统中缺少这些工具,可以通过以下命令安装:

sudo apt update
sudo apt install wget tar mousepad -y

步骤 1:下载 Java OpenJDK 8 安装包

我们将从华为云的镜像仓库下载 OpenJDK 8u202 的 Linux 64 位版本。这是一个可靠的镜像源,下载速度较快。

  1. 打开终端,执行以下命令:
wget https://repo.huaweicloud.com:8443/artifactory/java-local/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
  • 解释
    • wget 是一个命令行下载工具,用于从指定 URL 获取文件。
    • 下载的文件是一个压缩的 tarball(.tar.gz 格式),包含完整的 OpenJDK 8 安装包。
    • 默认情况下,文件会保存在当前目录,通常是 ~/Downloads(如果你在用户主目录执行命令)。

步骤 2:解压并安装 OpenJDK 8

我们需要将下载的压缩包解压到系统目录,通常是 /usr/lib/jvm,这是一个 Linux 系统存放 Java 虚拟机相关文件的标准路径。

  1. 切换到 /usr/lib/jvm 目录:
sudo mkdir -p /usr/lib/jvm
cd /usr/lib/jvm
  • 解释mkdir -p 确保目录存在(如果不存在则创建),需要 sudo 权限因为 /usr/lib 是系统目录。
  1. 解压下载的安装包:
sudo tar -xvzf ~/Downloads/jdk-8u202-linux-x64.tar.gz
  • 解释
    • tar -xvzf 是解压 .tar.gz 文件的命令,其中:
      • x 表示提取文件。
      • v 显示解压过程(可选,增加可见性)。
      • z 表示处理 gzip 压缩。
      • f 指定文件名。
    • sudo 确保有权限写入 /usr/lib/jvm
    • 解压后会生成一个名为 jdk1.8.0_202 的目录。

步骤 3:配置环境变量

为了让系统能够识别 javajavac 命令,我们需要将 OpenJDK 的可执行文件路径添加到系统的 PATH 环境变量中。

  1. 打开环境变量配置文件:
sudo mousepad /etc/environment
  • 解释
    • /etc/environment 是全局环境变量配置文件,适用于所有用户。
    • mousepad 是 Kali Linux 的默认图形化文本编辑器。如果偏好终端编辑器,可替换为 sudo nano /etc/environment
    • 需要 sudo 权限修改系统文件。
  1. 修改 PATH 变量:
    在文件中的 PATH 行末尾添加以下路径(注意用冒号 : 分隔):
/usr/lib/jvm/jdk1.8.0_202/bin:/usr/lib/jvm/jdk1.8.0_202/db/bin:/usr/lib/jvm/jdk1.8.0_202/jre/bin
  • 解释
    • /bin 包含核心命令,如 javajavac
    • /db/bin 包含数据库相关工具(可选,视需求添加)。
    • /jre/bin 包含 Java 运行时环境的可执行文件。
    • 确保路径准确无误,避免拼写错误。
  1. 保存并关闭文件:

    • mousepad 中,点击“保存”并关闭窗口。
    • 如果使用 nano,按 Ctrl+O 保存,Enter 确认,再按 Ctrl+X 退出。
  2. 使环境变量生效:
    运行以下命令刷新环境变量:

source /etc/environment
  1. 验证环境变量
    检查 PATH 是否包含新路径:
echo $PATH

你应该看到类似 /usr/lib/jvm/jdk1.8.0_202/bin 的内容。如果没有,重新检查配置文件。

  1. 可能的错误
    • 如果文件编辑失败,检查是否有写权限(sudo 是否遗漏)。
    • 如果 PATH 未生效,尝试重启终端或运行 export PATH=$PATH:/usr/lib/jvm/jdk1.8.0_202/bin 临时验证。

步骤 4:注册 Java 和 Javac 命令

Kali Linux 使用 update-alternatives 工具管理多个 Java 版本。我们需要将新安装的 javajavac 命令注册到系统中。

  1. 注册 java 命令:
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_202/bin/java" 0
  • 解释
    • --install 将新命令添加到 update-alternatives 系统中。
    • /usr/bin/java 是系统命令的符号链接路径。
    • "java" 是命令的名称(用于管理)。
    • /usr/lib/jvm/jdk1.8.0_202/bin/java 是实际可执行文件的路径。
    • 0 是优先级(数字越大优先级越高,0 表示最低优先级,适合测试)。
  1. 注册 javac 命令:
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_202/bin/javac" 0
  • 解释:类似 java,这里注册的是 Java 编译器。
  1. 可能的错误
    • 如果提示路径不存在,检查 /usr/lib/jvm/jdk1.8.0_202/bin/ 中是否有 javajavac 可执行文件。
    • 如果命令失败,确认是否遗漏 sudo

步骤 5:设置默认 Java 版本

如果系统中存在多个 Java 版本,可以手动设置默认版本为刚安装的 OpenJDK 8。

  1. 设置默认 java
sudo update-alternatives --set java /usr/lib/jvm/jdk1.8.0_202/bin/java
  1. 设置默认 javac
sudo update-alternatives --set javac /usr/lib/jvm/jdk1.8.0_202/bin/javac
  1. 解释
    • --set 强制指定默认版本。
    • 如果系统中只有一个 Java 版本,这一步可能无明显效果。

步骤 6:验证安装

安装完成后,验证 Java 和 Javac 是否正常工作。

  1. 检查 Java 版本:
java -version

预期输出:

java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
  1. 检查 Javac 版本:
javac -version

预期输出:

javac 1.8.0_202
  1. 可能的错误
    • 如果提示 java: command not found,检查 PATH 是否包含 /usr/lib/jvm/jdk1.8.0_202/bin
    • 如果版本不匹配,可能是 update-alternatives 配置错误,运行以下命令检查:
update-alternatives --display java

步骤 7:管理多个 Java 版本(可选)

如果你系统中安装了多个 Java 版本,可以通过 update-alternatives 切换:

sudo update-alternatives --config java
  • 系统会列出所有注册的 Java 版本。
  • 输入对应编号并按 Enter 选择默认版本。

类似地,切换 javac

sudo update-alternatives --config javac

步骤 8:调试常见问题

以下是一些常见问题及解决方法:

  1. 下载链接失效
    如果华为云链接不可用,可尝试其他镜像源,如:

    • AdoptOpenJDK(https://adoptopenjdk.net/archive.html)
    • Oracle 存档(需登录,https://www.oracle.com/java/technologies/java-archive-javase8-downloads.html)
  2. 权限问题
    确保所有操作(如解压、注册命令)使用 sudo,否则可能提示“权限不足”。

  3. 环境变量未生效
    如果 source /etc/environment 无效,尝试:

    • 重启终端。
    • 临时设置:export PATH=$PATH:/usr/lib/jvm/jdk1.8.0_202/bin
    • 检查是否有语法错误(如多余空格或冒号)。
  4. Java 版本冲突
    如果运行 java -version 显示其他版本,检查 update-alternatives 配置,或卸载不需要的 Java 版本:

    sudo apt remove openjdk-* -y
    

相关文章:

  • 电商|基于java+vue的农业电商系统(源码+数据库+文档)
  • oracle数据库启动阶段 NoMount / Mount / Open
  • 《Adaptive Layer-skipping in Pre-trained LLMs》- 论文笔记
  • 论文阅读:2022 ACL TruthfulQA: Measuring How Models Mimic Human Falsehoods
  • 数据中台(大数据平台)之数据安全管理
  • 4.1.2 Redis协议与异步方式
  • 智造未来:自动化智能检测系统实现近线检测与智能测量协同
  • 马的移动(BFS)
  • Causal Attention的底层原理
  • JVM详解(曼波脑图版)
  • Qt GUI 库总结
  • webview真正实现通信!!!
  • Vue 3中处理搜索框输入与数据库请求的交互
  • R4打卡——pytorch实现LSTM预测火灾
  • html+js+clickhouse环境搭建
  • [图像掩膜,ROI切割] 图像预处理(OpenCV)-part4
  • Flask(3): 在Linux系统上部署项目
  • 基于flask+vue框架的灯饰安装维修系统u49cf(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • MAMBA start!!!
  • TTY驱动程序框架
  • 技术派|伊朗展示新型弹道导弹,美“萨德”系统真的拦不住?
  • 联想发布超级智能体矩阵,杨元庆:美国关税影响反映在产品定价上,未来不确定性很大
  • 我国外汇储备规模连续17个月稳定在3.2万亿美元以上
  • 印观察|印巴战火与莫迪政府三重冒险:南亚火药桶已至临界点
  • 同观·德国|默茨当总理后,能否带领德国在欧盟“说了算”?
  • 同为“东部重要中心城市”后交出首份季报:宁杭苏表现如何?