If Clojure is an acceptable option (runs on the JVM, easy to integrate with Java), then it's definitely worth checking out Overtone.
It uses SuperCollider as the synthesis engine, but wraps it all in a nice DSL and interactive programming environment.