you can't have {int foo(), boolean foo()} as methods in the same class. So why make JNI users specify the return type in the method signature, when class + method name + args is sufficient to uniquely identify it? That sucks. I had a look at tclBlend's workaround and you have to jump through even more hoops than I thought to reflect your way around this. So yeah I'll do it the way you said. :(