# Embedded I2P Java Router with SAM interface This project will build a native launcher. The launcher will include the I2P router, a SAM listener and a minimal JVM. ## Prerequisites This project requires the JAR files and base configuration dir from an existing I2P installation. To install I2P on Ubuntu so that these files are available to you, type: ``` sudo apt-add-repository ppa:i2p-maintainers/i2p sudo apt-get update sudo apt-get install i2p ``` Then copy the following 56 JAR files from the I2P installation to the import/lib directory in your clone of this GitHub project: ``` mkdir -p import/lib for i in i2p.jar mstreaming.jar router.jar sam.jar streaming.jar gnu-getopt.jar libintl.jar; do cp /usr/share/i2p/lib/$i import/lib/; done mv import/lib/gnu-getopt.jar import/lib/gnugetopt.jar ``` You will need OpenJDK 11 installed: `sudo apt install openjdk-11-jdk-headless` ## Building the launcher `bin/build-launcher.sh` This will convert the imported JARs to modules, compile the Java source code in this project, and then use the jlink tool to build a platform-specific launcher executable. ## Running the launcher The launcher will need access to the /usr/share/i2p base directory. It will create a .i2p directory for configuration files in the current user's home directory if it does not already exist. `target/router/bin/router` ## Check that the I2P router is running and that it is listening for SAM connections `fuser 7656/tcp` ## Todo Need to determine the most minimal base configuration directory contents, and include it as part of this project.