What are you actually trying to achieve? Sipas patch gives you what you want if you've built software on top of the official BitCoin C++ software. If you want to stay in "pure java" land then BitCoinJ can help but as you note, it can't use the c++ clients wallets. Also if you want to buy/sell things with it, BitCoinJ is too immature for that at present. It's also dangerous to use if you aren't sure what you're doing.
You can just compile your own bitcoind with sipas patch and use a java json-rpc library.