Compiling Murmur ZeroC Ice bindings for Java

Daniel Bernhardt

Creative Commons Attribution-Noncommercial-Share Alike 3.0 Germany License


This manual explains how to compile ZeroC Ice for use with java to translate the Murmur Ice bindings to Java classes.

Revision History
Revision 0.82009-10-27Daniel Bernhardt
ZeroC Ice compilation

Compiling ZeroC


Ice compilation needs mcpp to be installed on the system. The Gentoo package manager portage has mcpp available under the name libmcpp. Make sure you have mcpp installed or compilation of Ice will fail.

You also need the Java API for Berkeley DB. On Gentoo make sure you have compiled sys-libs/db with java support. The Java API can be found at /usr/share/db-4.7/lib/db-4.7.jar. Note: The version may differ. If java can't find the library later on, prefix the ant command with CLASSPATH=/usr/share/db-4.7/lib/db-4.7.jar.


Download the Ice sourcecode from the ZeroC download page and extract it. Enter the newly created directory containing the contents of the archive. You should see multiple subdirectories including but not limited to

  • java

  • cpp

Enter the subfolder cpp/ and type make. Compilation will take a while.

compilation errors

Compilation may fail with the error error: db_cxx.h: No such file or directory. You can go around it linking your existing db_cxx.h to a directory that is included in the ZeroC Makefile. Go to the directory cpp/include/ and issue the command ln -s /usr/include/db4.7/db_cxx.h db_cxx.h.

After compilation completed change your working directory to java/ inside the Ice package. To build the java modules type in ant ice-jar. If this commands fails with some sleepycat error messages you need to read the part about Berkeley DB above again.

Compile slice definitions

Download the file from the git repository and follow the instructions at, "Compiling a Slice Definition for Java".