我已经知道如果需要的话,可以如何安装它。
删除所有与Java相关的软件包(Sun、Oracle、OpenJDK、IcedTea插件、GIJ):
dpkg-query -W -f='${binary:Package}\n' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e '^java-common' | xargs sudo apt-get -y remove
sudo apt-get -y autoremove
清除配置文件(注意,此命令还会删除libsgutils2-2和virtualbox的配置文件):
dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge
删除Java的配置和缓存目录:
sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
删除手动安装的JVM:
sudo rm -rf /usr/lib/jvm/*
从“alternatives”中删除Java条目(如果还有的话):
for g in ControlPanel java java_vm javaws jcontrol jexec keytool mozilla-javaplugin.so orbd pack200 policytool rmid rmiregistry servertool tnameserv unpack200 appletviewer apt extcheck HtmlConverter idlj jar jarsigner javac javadoc javah javap jconsole jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic schemagen serialver wsgen wsimport xjc xulrunner-1.9-javaplugin.so; do sudo update-alternatives --remove-all $g; done
搜索可能剩余的Java目录:
sudo updatedb
sudo locate -b '\pack200'
如果上述命令输出类似于/path/to/jre1.6.0_34/bin/pack200
的内容,请删除其父目录,例如:sudo rm -rf /path/to/jre1.6.0_34
。
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
To uninstall Oracle Java 7, just press Ctrl+Alt+T on your keyboard to open Terminal. When it opens, run the command below.
sudo update-alternatives --display java
To check the setup before uninstalling Java.
Next, remove symlinks
(用你的Java版本替换掉(version)这个词。执行java -version
命令来获取你的版本。所以如果你的版本是1.7.0_03,你应该输入sudo update-alternatives --remove "java" "/usr/lib/jvm/jdk1.7.0_03/bin/java"
)
sudo update-alternatives --remove "java" "/usr/lib/jvm/jdk<version>/bin/java" sudo update-alternatives --remove "javac" "/usr/lib/jvm/jdk<version>/bin/javac" sudo update-alternatives --remove "javaws" "/usr/lib/jvm/jdk<version>/bin/javaws"
verify that the symlinks were removed
java -version javac -version which javaws
The next 2 commands must be type excatly perfectly to avoid permanently destroying your system.
cd /usr/lib/jvm sudo rm -rf jdk<version>
Then do
sudo update-alternatives --config java sudo update-alternatives --config javac sudo update-alternatives --config javaws
Then do
sudo vi /etc/environment
Delete the line with JAVA_HOME 1
sudo dpkg --list | grep -i jdk
卸载OpenJDK:
sudo apt-get purge openjdk*
sudo apt-get purge icedtea-* openjdk-*
sudo dpkg --list | grep -i jdk
1Source:akbarahmed.com
/usr/lib/jvm
文件夹呢?据我所知,那个文件夹只被Java使用。 - njallamupdate-java-alternatives
命令切换到Sun Java软件包。尝试这个命令:
java -version
sudo apt-get autoremove openjdk-6-jre
sudo apt-get autoremove openjdk-7-jre
sudo apt-get autoremove openjdk-`<version>`-jdk
。
只需要删除所有JDK或JRE的文件,例如通常安装在这个位置:
/usr/lib/jvm/java-7-oracle
所以以root权限删除"java-7-oracle"文件夹中的所有文件,并将最新的JDK或JRE文件解压到其中。这样你就会安装最新版本的Java了。
P.S. 你的目录名称可能与 java-7-oracle 不同。
参考:Oracle官方安装指南
sudo update-alternatives --config java
java -version
sudo apt-get autoremove openjdk-18-jdk
apt-get remove
的grep
的输出,我认为它几乎涵盖了所有通过deb包进行安装的可能性。 - Eric Carvalhosudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
时,终端返回的响应是无效的。 - n00b.java
文件夹。实际的错误信息是什么? - Eric Carvalhols: 无法访问 /home/*/.java: 没有那个文件或目录
- n00bapt-cache search java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e....
еЉАе§ізЪДеСљдї§жШѓйТИеѓє32дљНжУНдљЬз≥їзїЯзЪДеРЧпЉЯжИСеЃЙи£ЕдЇЖ64дљНжУНдљЬз≥їзїЯгАВзЫЄеЇФзЪДеСљдї§жШѓдїАдєИпЉЯи∞Ґи∞ҐгАВ - n00bsudo apt-get -y autoremove
会删除我需要的许多其他软件包。忽略这个命令可以吗?或者你能提供一个“温和”一点的命令,只删除除了Java之外的软件包吗? - n00blibreoffice, libreoffice-java-common, libreoffice-sdbc-hsqldb
(我使用的是Mint x64,运行的是Libreoffice 5.0.1)。 - direwolf/.bashrc、/.profile。 这取决于你的安装方式。我的在/etc/profile.d/jdk.sh中。 - Housniapt-show-versions liblcms1:armhf libpython2.7 libwnck22 libxres1:armhf python-support stunnel4```
- msouthxargs
之后,我添加了-I{}
,并在命令的末尾添加了{}
所以,例如,代替sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
,我运行sudo bash -c 'ls -d /home/*/.java' | xargs -I{} sudo rm -rf {}
- mgershenfind /*/*java*
命令查找剩余的内容。 - Rajansudo find /*/*java* | xargs rm -f
删除其输出中列出的所有文件。 - Tms91