如何从 Solaris 11 x86 OS 中卸载 java jdk6 和 jre6?并安装 java7?如何设置路径和类路径?
答案1
pkg uninstall jdk-6
pkg install jdk-7
注意:没有发布“Solaris 12”。
答案2
我个人认为最好不要碰操作系统使用的 Java。让它有自己的生命。
我只是tar.gz
从安装软件包Oracle 的 Java 下载网站进入目录,例如/java
。缺点是,这样我就不使用打包机制 (IPS),但另一方面,它允许我完全控制,我可以安装任意数量的 JRE 或 JDK。如果你正在使用这些tar.gz
包,你实际上并不是安装,您实际上只是将档案解压到目录中。我喜欢这个,因为它很简单,而且它的定义不会造成干扰。
例如我的/java
目录如下所示:
jdk1.7.0_05
jdk1.7.0_09
jdk1.7.0_17
jdk1.7.0_67
jdk1.8.0_11
jdk7 -> jdk1.7.0_67
jdk8 -> jdk1.8.0_11
jre -> jre1.7.0_67
jre1.6.0_32
jre1.7.0_05
jre1.7.0_17
jre1.8.0_11
jre6 -> jre1.6.0_32
jre7 -> jre1.7.0_67
jre8 -> jre1.8.0_11
换句话说:很多目录代表我多年来安装(即解包)的 JRE 或 JDK。目录名称实际上是在您解包时自行创建的。如您所见,我使用符号链接来集中版本处理。
如果我有一个应用程序想要使用 JRE7,那么我只需确保PATH
在应用程序启动之前正确设置变量即可。例如:
export PATH="/java/jre7/bin:${PATH}"
这将确保我的应用程序使用 Java 7。
您还询问了类路径。这个问题与 Java 核心无关。一旦您PATH
正确设置了,Java 就会自动知道在哪里找到其核心 jar 文件。您通常需要设置类路径的原因是由于应用程序自身的要求,而不是因为 Java 运行时环境。
答案3
您无法删除操作系统应用程序正在使用的 JDK/JRE。但您可以
- 升级或降级
- 安装/删除较新的系列版本
例如,在 Solaris 11/11 中,操作系统有 JRE6,并且安装的几个应用程序依赖于 JRE6。您无法删除它。您可以将其更新到更高版本 6。在这种情况下,您还可以使用 IPS 安装或删除 JRE7 或 8。仅添加 JRE7 不会更改仍然依赖 JRE6 的应用程序。
如果您更新操作系统(例如“pkg update --accept”),这很可能会更新所有依赖 JRE 的应用程序。现在,它们都依赖于 JRE7。发生这种情况时,您无法再删除 7(更新安装的版本),但您可以将其更新到更高版本的 7。您还可以安装/卸载 JRE8,因为它与系统无关。
无论您拥有的是 Solaris 11 及更高版本(是的,也包括 12),这都是正确的。
顺便说一下,要降级 JRE,您需要更新它 - 指向以前的版本并更新到该版本。如果您有一个包含 7u45 和 7u60 的存储库,则更新时您将拥有 7u60。如果您想返回到 7u45,请像这样指定它
pkg 更新 pkg://solaris/runtime/java/[电子邮件保护]
顺便说一句,不支持在 Solaris 11 及更高版本上为 Java 安装 SVR4 软件包 (pkgadd)。IPS 是将 Java 安装在系统上的首选和受支持的方式。如果您需要多个系列版本,则应使用 .gz 或其他压缩包并将其放在自定义位置。