kali linux多版本java共存并自由切换 update-alternatives

在这里插入图片描述

Kali Linux通过`apt`和`dpkg`安装的Java不是一样的。 它们安装的Java版本和管理方式可能不同。
1. **apt 安装 Java:** 当您使用`apt`包管理器在Kali Linux上安装Java时,您实际上是安装了由Kali Linux官方仓库提供的Java版本。 这个版本通常是经过Kali Linux团队测试和验证的,以确保与Kali Linux系统的兼容性。 这通常是OpenJDK的一个特定版本。2. **dpkg 安装 Java:** 当您使用`dpkg`工具手动安装Java时,您可以选择要安装的Java版本,而不受Kali Linux官方仓库的限制。 这意味着您可以选择不同的Java实现,例如Oracle JDK、OpenJDK等,并且可以选择特定的版本。由于这两种方式可以安装不同版本的Java,并且可能会影响系统的配置和依赖关系,因此请根据您的需求和项目来选择正确的安装方式。 在Kali Linux上,推荐使用`apt`安装软件包,以确保与系统的稳定性和兼容性。 如果需要特定版本的Java或者需要手动控制Java的安装,那么可以选择使用`dpkg`或其他手动安装方式。 不过请谨慎操作,以避免破坏系统的稳定性。

以上为chatgpt给出的关于”kali linu通过apt安装的java和通过dpkg安装的java是一样的吗?“的回答,以上仅供参考。

一、apt方式安装OpenJDK 11

1.Kali Linux上安装OpenJDK 11

  • sudo apt update 我们先更新
  • sudo apt install openjdk-11-jdk 用以上命令安装OpenJDK 11

二、使用update-alternatives进行多版本java设置

用法

sudo update-alternatives --install link name path priority [ --slave slink sname spath]

选项注释:
sudo update-alternatives --install link name path priority

  • link是在/usr/bin/,/usr/local/bin/等默认PATH搜索目录
  • name是在/etc/alternatives目录中的链接名
  • path是真正的可执行程序的位置,可以在任何位置
  • priority是优先级
    根据各类文章写的都是通过命令 sudo update-alternatives --config name 在不同的Java版本之间切换的。
    在这里插入图片描述

那我们能不能直接也想win里面给不同版本的java设置成java8、java11、java15来运行不同版本的java呢?
通过了解我发现update-alternatives 是一个Debian和Ubuntu等Debian系Linux发行版中用于管理系统中多个可替代项的工具。在多版本Java的情况下,update-alternatives 允许您在不同的Java可执行文件之间进行选择,并管理系统中默认的Java版本。
它的原理是

1. **候选项列表:** 对于每个可替代项(例如不同版本的Java),`update-alternatives` 维护一个候选项列表。这个列表包括了可替代项的路径以及与之关联的优先级。2. **管理命令:** 您可以使用 `update-alternatives` 命令来管理这些可替代项。以下是一些常用的命令:- `--install`:用于添加一个新的可替代项到列表中,并指定路径、名称和优先级。- `--config`:用于选择默认的可替代项。- `--display`:用于显示当前的可替代项配置。- `--remove`:用于从列表中删除一个可替代项。3. **优先级:** 每个可替代项都有一个与之关联的优先级。较高优先级的项被认为是默认的项。当多个项具有相同的最高优先级时,系统会提示用户选择。4. **系统链接:** 当您选择一个默认的可替代项时,`update-alternatives` 将会在系统的某些目录下创建符号链接,这些符号链接将指向所选的可替代项。这些系统链接通常位于 `/usr/bin/` 或 `/usr/local/bin/` 等目录下。5. **自动更新环境变量:** `update-alternatives` 还可以自动更新系统环境变量,以确保所选的可替代项在终端会话中正确地生效。通过使用 `update-alternatives`,您可以轻松地在多个Java版本之间切换,并选择默认的版本,而不必手动更改环境变量或修改系统链接。这对于在系统上管理多个Java应用程序或为不同的项目使用不同的Java版本非常有用。

在这里插入图片描述
通过以上了解我们如下构造命令

sudo update-alternatives --install /usr/bin/java11 java11 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1712 

在这里插入图片描述
让我们来验证一下看来是可行的。
不过对于一些只有使用系统的软件不好更改他的启动脚本的只能使用sudo update-alternatives --config java切换java了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/140553.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue指令(代码部分三)

<template><view><view click"onClick">标题&#xff1a;{{title}}</view><input type"text" v-model"title"/>----------------案例----------------<view class"out"><view class"row&…

【李沐深度学习笔记】自动求导

课程地址和说明 自动求导p1 本系列文章是我学习李沐老师深度学习系列课程的学习笔记&#xff0c;可能会对李沐老师上课没讲到的进行补充。 吸取上一次写文章的经验&#xff0c;这次公式部分尽量采用直接截图&#xff0c;不用lateX&#xff0c;用lateX有一些浪费时间 自动求导…

day4_QT

day4_QT qt绘制钟表 qt绘制钟表 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);this->resize(1000,1000);this->setStyleSheet("background-color:…

Go内置函数make和new的区别?

首先纠正一下make 和 new 是内置函数&#xff0c;不是关键字。 变量初始化&#xff0c;一般分为2步&#xff0c;变量声明变量内存分配&#xff0c;var 关键字就是用来声明变量的&#xff0c;new和make 函数主要是用来分配内存的。 var 声明值类型的变量时&#xff0c;系统会默…

基于微信小程序的流浪动物救助系统设计与实现(源码+lw+部署文档+讲解等)

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…

python+selenium进行cnblog的自动化登录测试

Web登录测试是很常见的测试&#xff0c;手动测试大家再熟悉不过了&#xff0c;那如何进行自动化登录测试呢&#xff01;本文就基于pythonselenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动化登录测试&#xff0c;可提供点参考&#xff01;下面就包括测试代…

SpringBoot统一返回处理遇到cannot be cast to java.lang.String问题

ResponseBodyAdvice 接口概述 1、ResponseBodyAdvice 接口允许在执行 ResponseBody 或 ResponseEntity 控制器方法之后&#xff0c;但在使用 HttpMessageConverter 写入响应体之前自定义响应&#xff0c;进行功能增强。通常用于 加密&#xff0c;签名&#xff0c;统一数据格式…

计算机组成原理课程设计

操作控制和顺序控制 操作控制就是由各种微命令来构成的顺序控制就是由P测试和后续微地址构成的 这就构成了整个微指令的三个部分 访存指令就是实现对主存中的数据进行访问或存储 一、 操作控制字段是由各种微命令来构成的&#xff0c;这些微命令怎么来设计&#xff1f; 一个萝卜…

如何在Gazebo中实现多机器人编队仿真

文章目录 前言一、仿真前的配置二、实现步骤1.检查PC和台式机是否通讯成功2.编队中对单个机器人进行独立的控制3、对机器人进行编队控制 前言 实现在gazebo仿真环境中添加多个机器人后&#xff0c;接下来进行编队控制&#xff0c;对具体的实现过程进行记录。 一、仿真前的配置…

信息安全性测试的流程

安全测试 一、信息安全性测试的定义 软件安全是一个广泛而复杂的主题&#xff0c;每一个新软件都可能存在安全的缺陷&#xff0c;甚至这个缺陷是前所未见的。信息安全性测试的目的在于通过系统的测试&#xff0c;对所测软件提出安全改进建议&#xff0c;帮助用户将风险控制/转…

使用命令行快速创建Vite项目

一、构建项目 在终端中使用如下命令行&#xff1a; npm create vite 二、定义项目名称 三、选择项目类型 Vanilla是我们常用的JavaScript&#xff0c;Vue和React是常用前端框架&#xff0c;可以根据自己的需要进行选择 通过上下键进行选择&#xff0c;按下回车进行确认 创建…

mysql四种事务隔离级别介绍

MySQL事务隔离级别定义了不同事务之间的隔离程度。MySQL标准列表了四个隔离级别&#xff0c;依次为读未提交&#xff08;READ UNCOMMITTED&#xff09;、读已提交&#xff08;READ COMMITTED&#xff09;、可重复读&#xff08;REPEATABLE READ&#xff09;和串行化&#xff08…

速码!!BGP最全学习笔记:IBGP和EBGP基本配置

实验1&#xff1a;配置IBGP和EBGP 实验目的 熟悉IBGP和EBGP的应用场景掌握IBGP和EBGP的配置方法 实验拓扑 想要华为数通配套实验拓扑和配置笔记的朋友们点赞关注&#xff0c;评论区留下邮箱发给你! 实验步骤 1.IP地址的配置 R1的配置 <Huawei>system-view …

GeekRUN-7芯片跑分表

前两个字母是芯片简写&#xff0c;如麒麟&#xff0c;是QL&#xff0c;骁龙是XL&#xff0c;天玑是TJ&#xff0c;第一串数字是最高值&#xff0c;第二串是最低值&#xff0c;省电模式差不多这个水平。QL9K是麒麟9000&#xff0c;QL9S

AUTOSAR 面试知识回顾

如果答不上来&#xff0c;就讲当时做了什么 1. Ethernet基础: 硬件接口&#xff1a; ECU到PHY&#xff1a; data 是MII总线&#xff0c; 寄存器控制是SMI总线【MDCMDIO两根线, half duplex】PHY输出(100BASE-T1)&#xff1a; MDI总线&#xff0c;2 wire 【T1: twisted 1 pair …

【数据结构】【C++】红黑树RBTree的模拟实现(平衡搜索二叉树)

【数据结构】&&【C】红黑树的模拟实现(平衡搜索二叉树&#xff09; 一.红黑树的性质二.红黑树的模拟实现1.结点的定义2.搜索树的插入3.变色向上处理4.旋转变色 三.红黑树与AVL树的差别四.完整代码 一.红黑树的性质 1.什么是红黑树&#xff1f; 红黑树是一种搜索二叉树…

Python 公里与海里换算

""" 公里与海里换算知识点&#xff1a;1、换算公式&#xff1a;海里 公里 / 1.8522、input()、print()函数3、变量类型转换&#xff0c;整形int与字符串str转换&#xff0c;可以用type()函数验证4、字符串拼接&#xff0c;例如&#xff1a;123 456 1234565、…

硕士应聘大专老师

招聘信息 当地人社局、学校&#xff08;官方&#xff09; 公众号&#xff08;推荐&#xff09;&#xff1a; 辅导员招聘 厦门人才就业信息平台 高校人才网V 公告出完没多久就要考试面试&#xff0c;提前联系当地院校&#xff0c;问是否招人。 校招南方某些学校会直接去招老师。…

QT--day5

注册 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include<QPushButton> #include<QLineEdit> #include<QLabel> #include <QMessageBox> #include<QString> #include<QSqlDatabase> …

设计模式_解释器模式

解释器模式 案例 角色 1 解释器基类 &#xff08;BaseInterpreter&#xff09; 2 具体解释器1 2 3... (Interperter 1 2 3 ) 3 内容 (Context) 4 用户 (user) 流程 (上下文) ---- 传…