O shell não está expandindo o símbolo ~ (diretório inicial) e, assim, você acaba com o erro. Tente exportar o caminho completo do binário.
Eu tenho o seguinte script pequeno para testar se posso usar uma versão local da JVM:
#!/bin/sh
$JAVA_HOME/bin/java -version
Falha com:
./test.sh: 2: ./test.sh: ~/bin/jdk1.8.0_72/bin/java: not found
No entanto, quando eu digito o comando diretamente na linha de comando, ele funciona:
user@computer $ ~/bin/jdk1.8.0_72/bin/java -version
java version "1.8.0_72"
Java(TM) SE Runtime Environment (build 1.8.0_72-b15)
Java HotSpot(TM) Server VM (build 25.72-b15, mixed mode)
Alguma idéia?
Tags bash shell-script