Synclair is a tool for diff'ing and synchronizing directories. It also includes a utility to find duplicate files (by name, or md5 hash). It is a command line tool, written in Java.
Java Remote Method Call provides a Framework for remote method invocation on Java objects which solves the limitations of Java RMI. It provides a way for bidirectional communication of object states, between Client and Server.