No, you can not run a single executable and have your program work without being unpacked. The reason is that your program would expect to be able to access its files using standard syscalls, and if you have those files packed inside an archive, they will not be visible to Linux.
What you can do is use makeself to make a single self-extractable executable archive. Then your user would run the executable, it would extract the files from the archive, and then the user can run the installed program.
Another alternative, since you are using Java, is to pack files inside the .jar archive, and restructure your code. Then you could distribute the single .jar file and the user run it with