As asked and answered here, python has a useful way of deployment without installers. Can Java do the same thing?
For creating native executables, you can use Excelsion Jet, which compiles Java to native code. We used it for a project at work, and we had to perform zero modification to the original source code (which targetted Sun's JDK).