You can build "fat jars" that contain all dependencies.
IMO, this is how most Java apps should be deployed.
- Bundle all C/C++ native libraries, and link them all together with the java launcher - e.g you produce your own java.exe that has your C/C++ libraries linked in, then you slap the .jar file - for extra bonus you can slap at the back of your .exe and make it load from there
Voila - you have single executable (almost) with all you need, and you don't need to unpack .dll's anywhere
But... you must compile java.exe yourself...Is that 512 the lowest you can get it with command line options?