我已经在我的 Ubuntu 16.04 上安装了 Oracle Java。我尝试建立一个硬链接:
ln /usr/local/jdk-9.0.1/bin/java /usr/bin/java
当我运行 java 时,我得到了这个错误:
java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
我删除了硬链接并改为创建软链接:
ln -s /usr/local/jdk-9.0.1/bin/java /usr/bin/java
这样就解决了问题。那么为什么软链接可以工作,而硬链接却失败了呢?
当您创建指向文件的符号链接
ln -s
时,它就像来自 Windows 世界的链接。您可以从任何文件夹启动此符号链接,但工作目录将是原始文件所在的目录。至于硬链接,当您创建硬链接
ln
时,您会制作一种原始文件的副本,保留其所有属性(它与原始文件具有相同的 inode)。因此,工作目录将是硬链接所在的目录。因此,在您的情况下,硬链接工作正常,但它/usr/bin
用作其工作目录并在此文件夹中查找其他补充文件。