Links suaves e difíceis para Java - por que somente os soft links funcionam

3

Eu instalei o Oracle Java no meu Ubuntu 16.04. Eu tentei criar um link físico:

ln /usr/local/jdk-9.0.1/bin/java /usr/bin/java

Quando corri o java, recebi este erro:

java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory

Eu removi o link físico e criei um link flexível:

ln -s /usr/local/jdk-9.0.1/bin/java /usr/bin/java

Isso resolve o problema. Então, por que o link soft funciona enquanto o disco rígido falha?

    
por vico 05.01.2018 / 08:58

1 resposta

3

Quando você cria um link simbólico ln -s em um arquivo, ele age como um link do mundo do Windows. Você pode iniciar este link simbólico de qualquer pasta, mas o diretório de trabalho será aquele onde o arquivo original está localizado.

Quanto aos links físicos, quando você cria um hard link ln , cria uma espécie de cópia do arquivo original preservando todas as suas propriedades (ele tem o mesmo inode do arquivo original) . Assim, o diretório de trabalho será aquele em que o link físico está localizado. Portanto, no seu caso, o link físico funciona bem, mas usa /usr/bin como seu diretório de trabalho & amp; procura outros arquivos suplementares nesta pasta.

    
por M. Dm. 05.01.2018 / 09:10