There is no direct way of invoking a remotely located native code, JNI does not support this. Alternatively you have 2 choices,
1. Create a Remote object and let that run in the windows box. When any client wishes to get the functionality let it contact the Remote server using RMI and let the Remote server invoke the dll locally and return the response.
2. The same functionality mentioned in the above case can be implemented in native also. Using sockets for instance.
Hope this helps