在 Ubuntu 14.04 上安装 Android Studio 时,我收到我的 Java 版本 ( javac 1.7.0_79
) 导致问题的消息。我找到了如何安装 Java 的较新 Oracle 版本的解决方案:
sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
但是,我担心这可能会覆盖我现有open-jdk
的 Java 版本。由于我不知道我的哪些程序依赖于 Java,我担心这可能会使这些其他程序崩溃。
有没有办法确保apt-get
不会覆盖我以前的 Java?我基本上希望两者都安装并能够在它们之间手动切换,具体取决于我需要的版本。
Apt-get 不会覆盖现有的 java 版本。
要在已安装的 java 版本之间切换,请使用该
update-java-alternatives
命令。列出所有 java 版本:
将 java 版本设置为默认值(需要 root 权限):
...其中
/path/to/java/version
是上一个命令列出的其中之一(例如/usr/lib/jvm/java-7-openjdk-amd64
)。附加信息:
update-java-alternatives
是一个方便的工具,它使用Debian的替代系统(update-alternatives
java
javac
利用
它列出了所有已安装的版本并标记了当前活动版本,并提供了用于切换的对话框:
利用
$JAVA_HOME
从当前活动版本 设置配置 Java
您可以通过 using 配置在命令行中使用的默认版本
update-alternatives
,它管理哪些符号链接用于不同的命令。输出将如下所示。
您现在可以选择要用作默认值的数字。这也可以用于其他 Java 命令,例如编译器 (
javac
)、文档生成器 (javadoc
)、JAR 签名工具 (jarsigner
) 等等。您可以使用以下命令,填写您要自定义的命令。设置
JAVA_HOME
环境变量许多程序(例如 Java 服务器)使用 JAVA_HOME 环境变量来确定 Java 安装位置。
从您喜欢的安装中复制路径,然后使用 Sublime Text 或您喜欢的文本编辑器打开 /etc/environment。
在此文件的末尾,添加以下行,确保将突出显示的路径替换为您自己复制的路径。
保存并退出文件,然后重新加载它:
source /etc/environment
.您现在可以通过执行以下命令来测试是否已设置环境变量:
echo $JAVA_HOME
. 这将返回您刚刚设置的路径。根据@muet 的回答,我发现这可以无缝地工作:
将此添加到
~/.bashrc
:添加到别名:
然后,您可以仅使用以下方式在同一 shell 中切换:
useJava7
或useJava8
jrunscript
在未来的版本中可能不可用,因此export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
按照@ThiamTeck 的建议使用安全的选择。每次使用命令更改 java 版本时也.bashrc
需要执行。update-alternative
galternatives
还可以考虑使用通过 ubuntu 包管理器提供的 GUI 工具。