The deal with JNI and native code is that it calls code which is "native" to a particular platform. So it doesn't matter that Java itself is cross platform, it doesn't build the functionality of the particular piece of native code into the java byte code, it just supplies a bridge. So its still the dll which will do the work - and so you'd need a platform which can run that particular dll to run that java code.