zmq看起来很好用,但是安装起来不是一般麻烦。原来以为java绑定会提供jar包直接可使用,但是官网没有提供已经编译好的库文件和jar。多么的不方便啊!最终还是要自己动手编译!
安装java版本的zmq,需要先安装libzmq,即核心库,然后是java绑定,即jzmq。

安装libzmq

libzmq是ZMQ的核心库,首先需要安装该库,然后才能使用ZMQ。
一开始图方便,不想编译源码,比较麻烦不是?所以从http://zeromq.org/distro:microsoft-windows下载windows安装程序进行安装。但是发现还是需要编译安装jzmq,所以干脆已开始就编译安装libzmq。
libzmq源码的git项目位于https://github.com/zeromq/libzmq,
注意坑:从git上下载源码()后,使用vs2013编译时,弹出“无法找到sidium.h”。无法想象竟然会缺失文件!
所以如果遇到上述问题,最好还是去http://www.zeromq.org/area:download, 下载稳定版本,目前发现V4.0.5是可编译的版本。
开始编译之前,特别说明本次实践的测试环境:
  • 编译工具:vs 2013
  • 平台:windows 7 x64旗舰版
开始安装:
  • 首先,运行vs2013,打开解决方案\zeromq-4.0.5\builds\msvc\msvc.sln,系统提示转换方案,选择是即可。设置配置为release win32。
  • 执行“生成/生成解决方案”,没有意外的话构建会成功。
  • 生成的libzmq.lib位于\zeromq-4.0.5\builds\msvc\Release,libzmq.dll则位于\zeromq-4.0.5\lib中,将libzmq.lib拷贝到\zeromq-4.0.5\lib目录,方便后面安装jzmq。

安装jzmq

jzmq是libzmq的java语言绑定。如果要在java程序中使用zmq,那么可以通过jzmq使用zmq的套接字。当然也可以使用jeromq,这是zmq的的java实现。
安装jzmq比较麻烦,其中有大量的坑,一不小心就碰到大堆错误。
接下来,开始编译安装jzmq。

下载

编译

在windows上编译时,有几个大坑!也许在https://github.com/zeromq/jzmq/issues的问题列表里有其他人遇到的问题说明,但是一开始如果作者没有特别说明,谁会去仔细看?我们都会默认没有特别说明的软件是能正常工作的,正常思维都是如此吧?
好,先打住抱怨,这没有任何用处!另外,毕竟我没有付任何费用,我不能像个怨妇一样抱怨!

了解一些坑

1)坑一:在github的jzmq项目主页上,找不到在windows上的构建说明,这应该是最大的坑吧。所以,你不清楚使用什么版本的visual studio。如果有人找到了,烦请相告。
2)坑2:“预先生成事件”的命令行根本就是错的。
在jzmq属性页/配置属性/生成事件/预先生成事件中,可以看到命令行:
 
点击命令行,看到原来的命令是:
说明:
第一个红框内的命令是不能执行的,必须按这个格式修改下:copy ..\config.hpp “..\..\..\src\main\c++\”;
第二个javac命令也是错误的,红框内的ZFrame.java文件在编译的时候会找不到Utils.java文件。错误提示如下:
注意上面红框内的错误提示,这说明ZFrame.java不能识别Utils这个类。但实际上,该类与ZFrame在同一个包内,且访问修饰符是public,所以按理说是可以访问的!之所以报不能访问的错误(即”找不到符号“),是因为Utils.java没有被编译,所以必须在ZFrame.java前加上Utils.java文件,如下:
  1. javac ..\..\..\src\main\java\org\zeromq\ZMQ.java ..\..\..\src\main\java\org\zeromq\ZMQException.java ..\..\..\src\main\java\org\zeromq\ZMQForwarder.java ..\..\..\src\main\java\org\zeromq\ZMQQueue.java ..\..\..\src\main\java\org\zeromq\ZMQStreamer.java ..\..\..\src\main\java\org\zeromq\EmbeddedLibraryTools.java ..\..\..\src\main\java\org\zeromq\App.java ..\..\..\src\main\java\org\zeromq\ZContext.java ..\..\..\src\main\java\org\zeromq\ZDispatcher.java ..\..\..\src\main\java\org\zeromq\Utils.java ..\..\..\src\main\java\org\zeromq\ZFrame.java ..\..\..\src\main\java\org\zeromq\ZMsg.java
经过上述处理后,命令行可以工作了。
 

那么正式开工吧

好了,既然已经知道有哪些地方需要注意并且如何修复后,我们开始工作。编译环境和libzmq一样,仍然是使用vs 2013。
首先修改上面说的命令行不准确的这两个问题。
第二,修改jzmq的VC++包含目录和库目录。
其中,在“包含目录”中加入编译好的libzmq的include路径,并且修改java路径。在“库目录”中加入libzmq的lib路径,即上面的\zeromq-4.0.5\lib。如下:
 
可以编译了,点击”生成/生成解决方案“,输出如下则意味着成功了。
 
生成文件,包括jzmq.dll,jzmq.lib,zmq.jar,被放在项目的lib目录下。
 
至此,花费数小时来解决问题,构建过程总算艰难完成。但是目前尚不清楚zmq.jar包是否能正常工作,有待测试,详细过程请点击这里
 
 

WINDOWS 安装ZeroMQ的更多相关文章

  1. windows安装ActiveMQ以及点对点以及发布订阅

    一.MQ产品的分类 1.RabbitMQ 是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量级,更适合于企业级 ...

  2. Mysql(windows)安装

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  3. Windows 安装JRuby 生成 war 到 tomcat 运行

    Windows安装JRuby Rails 直接下载 JRuby,不装 Ruby. http://jruby.org/download 该安装包可以配好环境变量 %JRUBY_HOME% 等 安装 bu ...

  4. windows安装rabbitmq

    官网下载windows安装版本:http://www.rabbitmq.com/install-windows.html ,安装文件rabbitmq-server-3.6.5.exe 前提:安装erl ...

  5. windows 安装 mongodb

    windows 安装 mongodb 下载 首先到官网下载合适的安装包,下载地址为 https://www.mongodb.com/download-center MongoDB for Window ...

  6. 2016 windows安装phing:安装成功

    21:39 2016/7/212016 windows安装phing:安装成功注意:出现错误时就去更新pear:参见:http://www.cnblogs.com/pinnasky/archive/2 ...

  7. Windows安装和使用zookeeper

    之前整理过一篇文章<zookeeper 分布式锁服务>,本文介绍的 Zookeeper 是以 3.4.5 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apach ...

  8. windows 安装mysql 步骤

    Windows 安装mysql 5.7.12教程 1.在官网下载mysql5.7.12.zip并解压 复制默认配置文件my-default.ini,并命名为my.ini 使用记事本打开,修改如下配置 ...

  9. DOCKER windows安装

    DOCKER windows安装 1.下载程序包 2. 设置环境变量 3. 启动DOCKERT 4. 分析start.sh 5. 利用SSH工具管理 6. 下载镜像 6.1 下载地址 6.2 用FTP ...

随机推荐

  1. windows server疑难杂症

    1.某些网址.服务访问失败,可能的原因:增强的安全配置关闭增强的安全配置,并且重启电脑!!!http://jingyan.baidu.com/article/6181c3e076ac0b152ff15 ...

  2. Bootstrap 单按钮下拉菜单

    @{    Layout = null;}<!DOCTYPE html><html><head>    <meta name="viewport&q ...

  3. QT Linux Demo程序编译

    我手上的qt源码包为:qt-everywhere-opensource-src-4.7.0.tar.gz 在Linux下编译比较容易,解压后直接 ./configure,一般会报缺少什么库这些.自己遇 ...

  4. PHPEXCEL 不能输出中文内容,只显示空白

    以他带的示例文件为例 01simple-download-xls.php // Add some data $objPHPExcel->setActiveSheetIndex(0)        ...

  5. WPF 用Main函数方式启动程序

    原文:WPF 用Main函数方式启动程序 WPF默认程序启动:新建project后自动生成的App.xaml中指定程序启动方式(StartupUri="MainWindow.xaml&quo ...

  6. uwp之拍照(使用后置摄像头)

    参考:wp8.1之拍照(获取焦点,使用后置摄像头) uwp开启摄像头要借助CaptureElement呈现来自捕获设备(如照相机或网络摄像机)的流.今天讲讲如何打开摄像头,获取焦点,以及拍照.废话不多 ...

  7. WCF学习--我的第一个WCF例子

    Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口. 通信双方的沟通方式,由合约来订定.通信双方所 ...

  8. Codility---FrogRiverOne

    Task description A small frog wants to get to the other side of a river. The frog is initially locat ...

  9. 初次比较正式的IT职场面试后几点对自己web开发的思考

    昨天晚上参加一个web开发面试,对于还没有真正毕业的自己来说,web开发的面试不是第一次,暑假就面试几家公司,前几次的面试并没有发现自己对自己学习的专业知识有什么学习态度的问题,因为前几次的面试官都是 ...

  10. 2013年最流行的php框架盘点

    2013年最流行的php框架盘点 PHP框架的发展背景 毫无疑问,Web框架技术在近几年已经得到了突飞猛进的发展和普及,在过去几年里,框架技术的普遍经历了比较大的完善过程,很大一部分可以归因于Ruby ...