Complying with a limited subset of RFC 959 & 3659, a multithreading (i.e., deadlock-prone) FTP client written in Java socket programming and JavaFX 11 GUI framework, which supports the resuming of interrupted downloading / uploading and parallel transfers.
We develop this with pride for our course — Application Design of Computer Networks, Wuhan University.
Before you start, please ensure your JDK (or JRE alone) has been installed, path variable (JAVA_HOME
) has been appropriately set, and the current version is 11
by running java -version
on the command line.
Why JDK 11?
JDK 8 and 11 are the only two LTS (Long-Term Support) versions for now, which means better stability and continuous fixes, and 8 is older.
If you haven't installed JDK / JRE / "Java" before, you can visit this site to download Oracle JDK installer of your platform, or OpenJDK's version if you prefer open sources.
You can check your setting of path variable from command line by
- Linux Shell
echo $JAVA_HOME
- Windows CMD
echo %JAVA_HOME%
If you have installed JDK / JRE / "Java" from Oracle on Windows before, its installer will add extra contents (pointing to java.exe
) to environment variable PATH
, which is prior to JAVA_HOME
and lead a mismatching when doubly clickingtiny-ftp-client-specific_ver.exe
. Thus, if you need to upgrade/downgrade your JDK / JRE / "Java", please remember to remove those contents subsequently.
Once done, do sanity check by running
java -version
You should see prompts like
java version "11.0.7" 2020-04-14 LTS
Finally, please download artifacts of your platform from our release page
- EXE: just doubly click it.
- JAR: launch it from command line:
java -jar tiny-ftp-client-specific_ver.jar
Enjoy it!
If the application fails to start because of dependencies, you can clone this repo and use Maven or IntelliJ+Maven (recommended) to build and run.
Please notice we haven't support vsFTPd, which is widely deployed on Linux FTP servers, because it lacks FTP command MLSD
. You can use another outstanding, free software FileZilla Server.
PRs accepted and welcomed. Although we believe no one else will have an interest. :P
GPLv3 © FxxkMultiThreading Group
For more information about the project, dependencies, and configuration details used by Maven to build the project, please see pom.xml
For Javadoc, please click here for online reading.