How to install zeromq (0MQ) in Ubuntu with Java bindings

403 Forbidden

Forbidden

You don't have permission to access /devformatter/branches/langs/autoconf.php on this server.


Apache Server at svn.wp-plugins.org Port 80
403 Forbidden

Forbidden

You don't have permission to access /devformatter/branches/langs/autoconf.php on this server.


Apache Server at svn.wp-plugins.org Port 80
403 Forbidden

Forbidden

You don't have permission to access /devformatter/branches/langs/autoconf.php on this server.


Apache Server at svn.wp-plugins.org Port 80
403 Forbidden

Forbidden

You don't have permission to access /devformatter/branches/langs/autoconf.php on this server.


Apache Server at svn.wp-plugins.org Port 80
403 Forbidden

Forbidden

You don't have permission to access /devformatter/branches/langs/autoconf.php on this server.


Apache Server at svn.wp-plugins.org Port 80
403 Forbidden

Forbidden

You don't have permission to access /devformatter/branches/langs/autoconf.php on this server.


Apache Server at svn.wp-plugins.org Port 80
403 Forbidden

Forbidden

You don't have permission to access /devformatter/branches/langs/autoconf.php on this server.


Apache Server at svn.wp-plugins.org Port 80
403 Forbidden

Forbidden

You don't have permission to access /devformatter/branches/langs/autoconf.php on this server.


Apache Server at svn.wp-plugins.org Port 80
403 Forbidden

Forbidden

You don't have permission to access /devformatter/branches/langs/autoconf.php on this server.


Apache Server at svn.wp-plugins.org Port 80
403 Forbidden

Forbidden

You don't have permission to access /devformatter/branches/langs/autoconf.php on this server.


Apache Server at svn.wp-plugins.org Port 80
403 Forbidden

Forbidden

You don't have permission to access /devformatter/branches/langs/autoconf.php on this server.


Apache Server at svn.wp-plugins.org Port 80
403 Forbidden

Forbidden

You don't have permission to access /devformatter/branches/langs/autoconf.php on this server.


Apache Server at svn.wp-plugins.org Port 80
403 Forbidden

Forbidden

You don't have permission to access /devformatter/branches/langs/autoconf.php on this server.


Apache Server at svn.wp-plugins.org Port 80

I tested this in Ubuntu 13.04, but essentially this should work in any Ubuntu distribution. First install the libtool, autoconf, automake, uuid-dev, e2fsprogs packages.

  |  copy code |? 
1
sudo apt-get install libtool autoconf automake uuid-dev e2fsprogs

Then clone the 0mq source using,

  |  copy code |? 
1
git clone git://github.com/zeromq/libzmq.git

Then go in to the libzmq directory and run the following commands in order.

  |  copy code |? 
1
./autogen.sh
2
./configure
3
make
4
sudo make install
5
ldconfig -v

Then run the following command and check the output.

  |  copy code |? 
1
ls -al /usr/local/lib/libzmq.*

The output should be similar to,

  |  copy code |? 
1
-rw-r--r-- 1 root root 7082022 ජූනි 7 14:16 /usr/local/lib/libzmq.a
2
-rwxr-xr-x 1 root root 947 ජූනි 7 14:16 /usr/local/lib/libzmq.la
3
lrwxrwxrwx 1 root root 15 ජූනි 7 14:16 /usr/local/lib/libzmq.so -> libzmq.so.3.0.0
4
lrwxrwxrwx 1 root root 15 ජූනි 7 14:16 /usr/local/lib/libzmq.so.3 -> libzmq.so.3.0.0
5
-rwxr-xr-x 1 root root 2876918 ජූනි 7 14:16 /usr/local/lib/libzmq.so.3.0.0

Now you should install the Java bindings for 0mq (in order to use omq from Java of course!). First check whether the JAVA_HOME environment variable is correctly set using,

  |  copy code |? 
1
echo $JAVA_HOME

This should output the location that you have installed Java. If it’s giving an empty output, then set it manually using

  |  copy code |? 
1
export JAVA_HOME=/<!--DVFMTSC-->location/to/your/java/installation<!--DVFMTSC-->
2

In my case the command is,

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_17

Then clone the java bindings for 0mq using,

  |  copy code |? 
1
git clone https://github.com/zeromq/jzmq.git

now go inside the jzmq folder. Now same as before, run the following commands in order.

  |  copy code |? 
1
./autogen.sh
2
./configure
3
make
4
sudo make install

Now run the following command to verify the installation.

  |  copy code |? 
1
ls -al /usr/local/lib/*jzmq* /usr/local/share/java/*zmq*

The output should be like the following.

  |  copy code |? 
1
-rw-r--r-- 1 root root 535266 ජූනි 7 14:40 /usr/local/lib/libjzmq.a
2
-rwxr-xr-x 1 root root 998 ජූනි 7 14:40 /usr/local/lib/libjzmq.la
3
lrwxrwxrwx 1 root root 16 ජූනි 7 14:40 /usr/local/lib/libjzmq.so -> libjzmq.so.0.0.0
4
lrwxrwxrwx 1 root root 16 ජූනි 7 14:40 /usr/local/lib/libjzmq.so.0 -> libjzmq.so.0.0.0
5
-rwxr-xr-x 1 root root 242784 ජූනි 7 14:40 /usr/local/lib/libjzmq.so.0.0.0
6
-rw-r--r-- 1 root root 40618 ජූනි 7 14:40 /usr/local/share/java/zmq.jar

Notice the last line, that’s the newly created jar that connects to 0mq. Now you can use 0mq inside a Java programme.

Troubleshooting

If you get any of the following errors (which I got) when building the jar, export the mentioned system variables in the terminal to resolve them.

error

checking for javah… no

configure: error: cannot find javah

solution

  |  copy code |? 
1
export JAVAH=/<!--DVFMTSC-->location/to/your/java/installation/bin/javah

ex – export JAVAH=/usr/lib/jvm/jdk1.7.0_17/bin/javah

error

checking for jar… no

configure: error: cannot find jar

solution

  |  copy code |? 
1
export JAR=/location/to/your/java/installation/bin/jar
2

ex – export JAR=/usr/lib/jvm/jdk1.7.0_17/bin/jar

(Most of the content of this guide is based up on https://github.com/mslinn/zeromq-demo#ubuntu )

Share Button

8 thoughts on “How to install zeromq (0MQ) in Ubuntu with Java bindings

  1. I guess the errors occurred in your case because you might have forgot to set the environment variable for JAVA_HOME in the first place. I’m saying that because I didn’t get any error.
    cheers

  2. Hi,
    I followed this post to install and build zeromq. Everything worked properly but when i tried to run a sample code in eclipse. It says the import of zeromq library cannot be resolved. Any idea where I have gone wrong? I was guessing its something to do with classpath or java_home but my java_home is set properly .

    Thanks,
    Ashwini

Leave a Reply

Your email address will not be published. Required fields are marked *