Gil*_*ili 7 installation apt java openjdk update-alternatives
我的自动构建服务器运行依赖于Apache Ant的作业。脚本调用apt-get install ant. Ant 取决于openjdk-6-jre-headless哪个运行update-alternatives使自己成为默认 JDK(在此过程中重写我的符号链接)。我已经安装了 Oracle JDK(手动)并且不想update-alternatives运行。update-alternatives每次发生这种情况时,我都无法手动恢复。
去年有人试图纠正这个问题,但被拒绝了:http : //bugs.debian.org/cgi-bin/bugreport.cgi?bug=678195
我如何防止openjdk-6-jre-headless调用,update-alternatives或者更糟糕的情况,我如何在安装过程之前查找值并在事后恢复它?
更新:我在这里提交了一个新的错误报告。我将不胜感激您的支持。
Gil*_*ili 10
回答我自己的问题:
我使用https://askubuntu.com/a/55960/23678来安装 Oracle JDK。如您所见,这些指令update-alternatives以优先级 1 进行调用。openjdk-6-jre-headless安装本身时,它会将优先级设置为 1061(其中较高的优先级替换较低的优先级)。
为了解决这个问题,我简单地给了 Oracle JDK 一个高于 1061 的优先级。当openjdk-6-jre-headless它自己安装时,它不再破坏 Oracle JDK 作为默认值。
更新:为了更新 OpenJDK 的优先级,我只需重新运行:
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/bin/java" 2000
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0/bin/javac" 2000
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0/bin/javaws" 2000
Run Code Online (Sandbox Code Playgroud)
优先级为 2000 而不是 1(优先级是最后一个命令行参数)。