我完全删除了 openjdk-7,apt-get purge
并安装了 oracle jdk(8u45)。我在路径中安装了 oracle jdk,它运行良好。问题是,如果我尝试安装任何依赖于 java([open]jdk) 的软件(从命令行或软件中心),我就会被迫安装 openjdk。有没有什么解决方法……?
操作系统:Ubuntu 15.10
我在 /etc/profile 中附加了以下内容:
JAVA_HOME=/usr/local/java/jdk1.8.0_45
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH
答案1
您可以使用以下命令选择 Ubuntu 使用的 Java 默认版本:
$ sudo update-alternatives --config java
如果安装了多个版本,它会让您选择,如果只找到一个版本,它会正确设置。
答案2
我是从 RPM 的角度回答的,但我确信 DEB 也有类似的措施。
每个包都有提供和需要,它们不必与包的名称匹配。例如,OpenJDK 提供 java 和 java-devel。并且每个需要它的包也会获取它。
问题是没有其他 java 和 java-devel 提供商,Oracle JDK 无法通过许可证重新分发,很少有人关心打包 IBM 或 Azul JDK,其他 JVM 实现的功能不够齐全。
因此,解决您的问题的唯一方法是:1. 按照 aramboi 的建议建立替代方案。2. 创建一个合成包,其中不包含任何内容,但会提供 java 和/或 java-devel。
这就是让 dpkg 认为您已准备好所有需要的东西并且不会再下载 openjdk 的诀窍。大约 8 年前,这可能会导致链接到 libjvm.so 的软件出现问题,但我怀疑除了运行 java 可执行文件之外,是否还有任何东西链接到 libjvm.so。
答案3
我认为更好的方法是使用额外的存储库ppa:webupd8team/java用于安装 Oracle JDK 7,8,9。
您可以在此处阅读详细信息:http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html。