如何在 Debian 中删除 Java?

如何在 Debian 中删除 Java?
java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.13) (6b18-1.8.13-0+squeeze2)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

在 apt 中似乎没有简单的方法来搜索包,所以我使用 dpkg 来搜索与 java 相关的包:

# dpkg --get-selections | less | grep java
ca-certificates-java            install
java-common                     install
javascript-common               install
libaccess-bridge-java           install
libaccess-bridge-java-jni       install
libdb4.7-java-gcj               deinstall
libhsqldb-java-gcj              deinstall
sun-java6-bin                   deinstall
sun-java6-jre                   deinstall
tzdata-java                     install

我继续删除 java-common,但是当它完成时 java 仍然安装并且 java -version 仍然显示相同的内容。

什么都没有改变,java-common 包甚至仍然出现在 dpkg 搜索中。我错过了什么?

我还删除了 OpenJDK,它似乎将其设置为“卸载”:

# dpkg --get-selections | less | grep openjdk
openjdk-6-jre                   deinstall
openjdk-6-jre-headless          install
openjdk-6-jre-lib               install

Java 仍然存在。

# java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.13) (6b18-1.8.13-0+squeeze2)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

答案1

对我来说是:

sudo apt-get remove openjdk-6*
sudo apt-get remove icedtea*

答案2

我之所以遇到这个问题,是因为我正在研究一本关于 Android 编程的指导书,该书希望使用特定的 Java SE 和 JRE (8u121),并要求在继续安装之前删除所有其他 Java 包。所以在阅读了上述想法后,我选择了:

sudo apt-get remove openjdk*

结果是:

bryan@kali:~$ java -version
bash: /usr/bin/java: No such file or directory

因此,上述内容表明未找到任何版本的 Java。这正是 OP 想要做的(我认为)。

如果有人因为要卸载 Java 以便安装旧版本而找到此线程,我已附上我找到的演练。如果您没有 GUI,前两个代码可帮助您安装它。如果您有 tarball,请跳过这些。如果您没有安装与我相同的版本,则最后一个代码块有一些您需要编辑的部分。


{开始复制/粘贴}

如果您尝试远程安装 Java JDK 并且完全无法访问图形用户界面和 Web 浏览器,请使用以下 curl 方法通过命令行下载 Java JDK。

首先,使用curl命令获取正确的下载URL:

$ curl -s http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html | grep "otn-pub" | cut -d \" -f12

上述命令输出一组 URL 供您选择。要开始下载所需的 Java 文件,请复制其 URL 并使用 curl 命令开始下载,同时接受请求的 Jave 许可证。例如:

$ curl -LOb "oraclelicense=a" http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz

安装 Java JDK 在此阶段,我们应该在当前工作目录中有一个适当的 Java JDK tarball:

$ ls
jdk-8u121-linux-x64.tar.gz

创建目标 Java JDK 安装目录:

# mkdir /opt/java-jdk

提取先前下载的 Java JDK tarball:

# tar -C /opt/java-jdk -zxf jdk-8u121-linux-x64.tar.gz

将 Oracle Java 设置为默认值目前,系统无法识别我们的 Java JDK 安装:

$ update-alternatives --list java
update-alternatives: error: no alternatives for java
$ java
bash: java: command not found

使用 update-alternatives 命令将 java 和 javac 都包含为系统 Java 环境的一部分。请在适当的情况下替换以下 java 二进制文件的路径,以反映您下载的 java 版本:

# update-alternatives --install /usr/bin/java java /opt/java-jdk/jdk1.8.0_121/bin/java 1   
update-alternatives: using /opt/java-jdk/jdk1.8.0_121/bin/java to provide /usr/bin/java (java) in auto mode
# update-alternatives --install /usr/bin/javac javac /opt/java-jdk/jdk1.8.0_121/bin/javac 1
update-alternatives: using /opt/java-jdk/jdk1.8.0_121/bin/javac to provide /usr/bin/javac (javac) in auto mode

{结束复制/粘贴}

好的,在我遵循之后,我想确认它是否有效......

bryan@kali:~/Desktop$ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

就是这个!这就是我们想要的。

然后我开始担心“apt update”可能会通过更新软件包来撤销我所做的操作(不确定)。所以我把它们搁置了。要取消搁置:apt-mark unhold。

bryan@kali:~/Desktop$ sudo apt-mark hold openjdk-8*
openjdk-8-jre set on hold.
openjdk-8-jre-headless set on hold.
openjdk-8-doc set on hold.
openjdk-8-jdk set on hold.
openjdk-8-dbg set on hold.
openjdk-8-demo set on hold.
openjdk-8-jdk-headless set on hold.
openjdk-8-source set on hold.
openjdk-8-jre-dcevm set on hold.
openjdk-8-jre-zero set on hold.

答案3

你有没有尝试过:

  1. sudo apt-get remove '*jre*'
  2. sudo apt-get remove '*icedtea*'

这些只是正则表达式,应该可以匹配名称中带有“icedtea”或“jre”的任何内容。
希望这能有所帮助!

相关内容