With Java, it seems wrapping (at least on Windows) is done only through batch files, which among other thing have terrible Ctrl+C handling (asking for prompt and such).
Maybe I'm naive, but if I was to solve this, I would've done it the way many self-extracting tools work - a small .exe with your stuff at the end (or look at the same directory at the wrapped executable, same name, different extension), and run it like this. And then java itself would've be a dll itself, loaded by this process.
This way migration between languges/runtimes would be easier if Java is to play some part of it.
I use Mono, other people use Mono, it works fine. It means I can target Linux and Mac OS X, and even develop on those platforms.