$ uname -a
Linux X51 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
$ java -version
java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.2)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
我有上述版本,它们具有重要的稳定设置(对于我自己的应用程序):
- 不幸的是,我一直使用 Java 1.6。
- 但现在发现由于该版本问题,很多东西都无法正常工作。
- 我想删除:
a) 完全(安全地)旧 Java
b)切换到新的,安装 openjdk-7 64 位(安全)
简单申请是不是更好的主意apt-get remove openjdk*.
?
或者
还有什么更聪明、更安全的方法?(为了避免仅仅删除 openjdk-6 而不丢失许多其他依赖项)
跟进:
$ java -version
java version "1.7.0_09"
OpenJDK Runtime Environment (IcedTea7 2.3.3) (7u9-2.3.3-0ubuntu1~12.10.1)
$ sudo update-alternatives --config java
[sudo] password for sun:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode
1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode
Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java to provide /usr/bin/java (java) in manual mode
$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~12.10.1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
答案1
还有什么更聪明、更安全的方法?(为了避免仅仅删除 openjdk-6 而不丢失许多其他依赖项)
最聪明的方法是向后兼容,安装它们(我相信 Java 7 仍在不断成熟。)
安装 OpenJDK 7 以及您需要的其他任何内容,然后使用sudo update-alternatives --config java
显示各种可用的java
二进制文件及其位置,并选择一个默认(当您输入时调用java
)。
这样,您仍可以在必要时使用 Java 6,只需通过二进制文件的完整路径调用它即可。将 替换java
为javac
等update-alternatives
,然后设置它们。
当您确定所有代码/程序在 1.7 上都能稳定运行,并且想要摆脱 1.6 时,请先运行以下命令dpkg --list | grep -i openjdk
来查明系统上安装了哪些软件包,然后再运行类似apt-get remove openjdk.*
!!的命令。