Não, você não pode executar um único executável e fazer seu programa funcionar sem ser descompactado. A razão é que seu programa esperaria poder acessar seus arquivos usando syscalls padrão, e se você tiver esses arquivos compactados dentro de um arquivo, eles não estarão visíveis para o Linux.
O que você pode fazer é usar self-make para criar um único arquivo executável auto-extraível. Em seguida, o usuário executaria o executável, extrairia os arquivos do arquivo e, em seguida, o usuário poderá executar o programa instalado.
Outra alternativa, já que você está usando Java, é empacotar arquivos dentro do arquivo .jar e reestruturar seu código. Em seguida, você poderia distribuir o arquivo .jar único e o usuário executá-lo com java -jar
.