Why Java?
Java is my favorite programming language.
When I was searching for a WiiRemote API, I found a lot, but the WiiRemoteJ was written in Java. It works just fine, so I prefered it.
WiiRemoteJ is using the Avetana BT which is a Java/JNI-Implementation of JSR-82 for Linux and J2SE.
Amarok is my favorite player and it has a very nice API. You can check the DCOP function of Amarok here