Define o caminho da classe para o caminho do arquivo .sh
na linha 88 do arquivo .sh
.
this_script='which "$0" 2>/dev/null'
[ $? -gt 0 -a -f "$0" ] && this_script="$0"
cp=$this_script
[...]
CLASSPATH="$cp"
export CLASSPATH
Não há necessidade de "descompactar" a classe principal.
Ele usa um truque para combinar um script de shell e os dados JAR / ZIP reais em um único arquivo: Ele usa o fato de que um arquivo ZIP é estrutura central de dados está no seu final. O leitor de arquivos zip
/ jar
simplesmente sobre o script de shell "dados de lixo" no início.
Often the first thing in a zip file is a zip entry, which can be identified easily by its signature. But it is not necessarily the case that a zip file begins with a zip entry, and is not required by the zip specification.
Contanto que o código do script de shell exit
s antes do início dos dados zip
/ jar
, o shell não se preocupe com os "dados de lixo" após a parte do script de shell do arquivo. / p>