1. Can I embed edtFTPj in commercial applications?
Yes, as it is under the GNU Library GPL you can freely embed this code in
any application whatsoever for no cost. Note that the usual GPL
restrictions of making any modifications public must be observed
if you are redistributing the library with your applications.
We do re-license the source under a completely unrestricted licence to
individuals and companies who wish to use the source in their own
applications, without LGPL restrictions. See here.
2. Does edtFTPj support SSL/TLS?
Yes! edtFTPj/SSL is a commercial product now available for purchase.
3. Does edtFTPj support mget/mput?
No, to keep it simple, edtFTPj only supports the FTP protocol, which does not support mget/mput. However this could be easily implemented by using the new dirDetails() method to get a listing of all files and
directories within a directory. The array of FTPFile objects returned will enable you to find out which are files and which are directories, and you can recursively
go through all the directories.
4. Is edtFTPj thread safe?
No, this would incur a significant performance penalty for users that do not require a thread safe library. Instead, synchronize your own code to ensure multiple threads do not access the same
5. I want to get access to the InputStream of the incoming data, but I can only find a get() method that takes an OutputStream.
The underlying InputStream for data is deliberately not made available. Failure to close this stream at the appropriate point will cause FTP operations to hang. Instead, supply an OutputStream
that the FTPClient will write the incoming data to, and use a java.io.PipedInputStream to convert it to an InputStream. You will need to use a separate thread - see the PipedInputStream
6. The FTPClient constructor is hanging connecting to the FTP server, even though I am supplying a timeout value
Unfortunately (and surprisingly), the java.net.Socket class was only given timeout functionality in its constructor in JDK 1.4. Prior to this, it was not possible to set a timeout when
creating a connected Socket. As we wish to continue supporting prior versions of the JDK, we have chosen not to use the 1.4 timeout functionality. This means that the initial connection
attempt in the FTPControlSocket constructor has an infinite timeout, and the supplied timeout value is not used until this attempt is complete.
You may want to modify the code yourself if you are using 1.4 exclusively. In FTPControlSocket, you can create an unconnected Socket with the default constructor, and use the connect()
method to connect using the supplied timeout.
7. Can you give me some examples of how to use edtFTPj?
Yes, look in the "demo" directory at Demo.java for a simple example. The "test" subdirectory has a number of unit tests that exercise and demonstrate functionality.
We use JUnit for unit testing.
8. I think I've found a bug. What should I do?
Check you are using the latest version of the library. If you are, and you can isolate the problem, send us a detailed
description, including debug output and relevant stack traces. We'll look into it as soon as possible. Of course, if you can fix it yourself, please do so, and send us the fix/patch.
9. How can I be notified of new releases?
Every new release is immediately announced on the appropriate
EDT email list which you may wish to subscribe to.
10. I'd like an enhancement made to the library. Can you do it for me?
Yes, but you will have to pay for it, and you must agree that we will retain
the intellectual property rights so that we have the option of including
the enhancement in future releases of the library if we choose to do so.
Email us to discuss your requirements.
11. I like your design and your code. Can I hire you?
EDT has a number of consultants who may be available for external consulting
or development projects. We specialise in small to medium sized projects
involving Java, J2EE, EJB, Tomcat, Weblogic and JBoss, on Unix and Windows
platforms, and .NET on Windows. We can mentor teams, give expert advice on
designs, or run entire
projects. We emphasize the use of Open Source in our projects, which help
reduce costs. We are based in Brisbane, Australia, but are happy to undertake
Email this address
to discuss your requirements with us.
Please post any bugs, comments, questions or suggestions to the EDT Forums.
Bug fixes and enhancements can be emailed to