There is a bug in your code:
"NativeInterface.runEventPump();" must be the last call of your method, because it is a blocking call.
If startup() must return, then don't call that "runEventPump" method but it will only work on Windows and Linux (not Mac) where calling this method is optional.

Hope this helps,
-Christopher