Required Dependencies

Rihamark depends on the Java SE Runtime Environment 6.

Optional Dependencies

pHash (custom version)

The standard algorithm plugins require a customized version of pHash. The customized version is based on pHash version 0.9 and can be downloaded from here. The upstream version of pHash does not work with Rihamark at the moment. The required changes are currently integrated into the upstream version of pHash.

At the moment Rihamark always lists the pHash plugins as available no matter if this dependency is met or not. If you don't install pHash, but ask Rihamark to benchmark one of its algorithms it simply hangs at the moment. This will be solved in a more user-friendly way in the future.

pHash is written in C/C++. Required are the JNI shared library ( and the pHash shared library itself ( So if you want to use the standard algorithm plugins you have to take care yourself that the Java virtual machine finds the JNI shared library and that your operating system finds the pHash shared library.

If you are using a Unix based operating system the easiest solution is to put a symlink to both libraries into /usr/lib. If you don't want to put any symlinks into /usr/lib you can also start Rihamark using the following commands:

$ export LD_LIBRARY_PATH=<...>/pHash/bindings/java/.libs/
$ java -Djava.library.path=<...>/pHash/bindings/java/.libs/ -jar rmk-gui.jar
Also do not forget that you have to explicitly configure pHash in order for the Java bindings to be built. Under Unix this can be achieved by running the configure script using the following command line:
$ ./configure --enable-java

Running the program

To start the Rihamark GUI open a console and change your working directory to the directory containing the file rmk-gui.jar. Then run the command java -jar rmk-gui.jar. Please also consider the required and the optional depedencies!

Binary Distribution

Source Code