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了