Recently I have spent quite some time trying to get the NVIDIA Optimus driver to select the high-performance card by default for my Java game.
I turns out that (as far as I know) the only way to do that is to launch your java game from C++.
Since it took me some time to figure it out, I wrote a bit about how I did it.
Hopefully it will save someone some time!
BTW, this thread helped quite a bit.