This Java FTP library is an open source tool, used in numerous projects, that's capable of supporting both active and passive connection modes, binary and ASCII data transfer modes, resuming of halted data transfer, and most FTP extensions.

One of the most impressive aspects of this library is its maturity and stability. I found that it has been thoroughly tested and is highly reliable. In addition, the library is licensed under the LGPL, which allows for commercial use in applications.
Overall, I highly recommend this Java FTP library for any project that requires FTP functionality. The library is efficient, highly versatile, and provides a seamless experience.
Version 2.5.0: Added support for using ACCT in FileTransferClient. FTPFile.getPath() should not include the filename, only the directory, for all protocols. This includes FTPFile objects returned from dirDetails() and fileDetails(). Fixed bug in MLST parser. If MLST not supported fileDetails() now falls back to SI