This is the official repository of the Chat Project. Documentation can be found in the wiki.
- Jackson, a JSON parser - POJO.
You can download our latest release here.
To run our binaries, Java is needed. Consider downloading JDK version 17 LTS. If you are on Linux, to install Java dependencies correctly, use the package manager of your distro. Headless versions, as well as JDK 11, should be fine. However, to be sure, install a complete JDK 17 like we did.
-
Debian based
# apt install openjdk-17-jdk
-
Arch Linux based
# pacman -S jdk17-openjdk
-
Mac OS X Mac OS X installation hasn't been tested, but this seems to be a reasonable one.
$ brew install openjdk@17
-
Windows
On Windows, installation might get trickier. We recommend you to install this OpenJDK distribution, which has served me well for a lot of time.
On Windows, you might also need to set environment variables manually. DuckDuckGo it if you need to.
You can verify the correct installation of the JDK by typing
$ java --version
You should be able to see an output similar to this one
openjdk 17.0.5 2022-10-18
OpenJDK Runtime Environment (build 17.0.5+1)
OpenJDK 64-Bit Server VM (build 17.0.5+1, mixed mode)
Make sure to have followed the guide above in order to have a JVM installed in your machine.
Download the latest version of the client. cd
into the folder the client-vX.X.jar
is in, and then type:
$ java -jar client-vX.X.jar <ip address> <port>
Capital X are to be substituted with the actual version you downloaded. Parameters in triangular braces (<
and >
) are mandatory. Braces needs to be removed.
For instance, to make the client connect to localhost
to a server listening on port 2022
, the following might be typed:
$ java -jar client.jar localhost 2022
The same goes for the server. However, this doesn't need an IP to be launched. Port is the only parameter that has to be specified.
For instance, to run a server listening on port 2022
:
$ java -jar server.jar 2022
To project viewers, it's important to know about the project structure. We have listed here a list of folders with a small description.