BlockSync is a command line tool written in Java, designed to synchronize single large files (such as virtual disk images) across networks with limited bandwidth. It makes use of MD5 hashing to only transfer the data that needs to be transferred. Ideal for use in command line scripts.
JFtpSync is for uploading web content to a server via FTP. It is designed to do FTP uploading only, and do it well, offering recursive uploading of content filtered by file type. It is primarily a command-line tool but there is a Java GUI as well.