edtFTPj/Free - Open-source FTP library for Java | Download
 How to FTP through other proxy servers

Many firewalls support a means of forming proxy connections other than SOCKS.

When of supplying the remote hostname, the name of the firewall is supplied instead. Instead of supplying the remote user as the user, a string is supplied in the form of remoteuser@remotehost.com. The remote password is supplied as normal.

For example:

ftp.setUserName("remoteuser@remotehost.com");
ftp.setPassword("remotePassword");
ftp.setRemoteHost("firewallhostname");

Firewalls we have confirmed support this syntax at the time of writing include Check Point Firewall-1 and WinProxy.