在我的控制台中输入时,会java
出现一个符号链接/usr/bin/java
。
which java
/usr/bin/java
此符号链接指向/etc/alternatives/java
。
file /usr/bin/java
/usr/bin/java: symbolic link to `/etc/alternatives/java'
/etc/alternatives/java 本身是一个符号链接,指向/usr/lib/jvm/jdk1.8.0_20/bin/java
为什么要走这样的弯路?为什么不java
直接指向/usr/lib/jvm/jdk1.8.0_20
. 我看不出有什么好处。
您已经在 Debian/Ubuntu 中发现了替代系统:
试试看
从
man update-alternatives
您寻求的答案在 AB 的答案中,更具体地说 - 在手册页的第二段和第三段的文本中。但简而言之,替代系统充当默认程序的数据库,允许优先考虑具有相同目的的多个不同程序
好的,但为什么要绕路?为什么不 make
/usr/bin/gnome-terminal
be launched or/usr/bin/xterm
?维护系统软件。假设您同时安装了 Oracle 和 Open-JDK。您已将 Oracle java 设置为最高优先级,然后有一天决定将其删除。如果java
,或者更确切地说/usr/bin/java
是指向 Oracle 的 jdk 的任何二进制文件的链接,则您必须手动更改该链接。替代系统允许链接自动切换到优先列表中的下一个项目。