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. ASP.NET Core SameSite 设置引起 Cookie 在 QQ 浏览器中不起作用

    最近在发布了基于 ASP.NET Core 实现的新版登录页面之后,陆陆续续地接到用户反馈登录时 Antiforgery Token 总是验证失败. 日志中记录的对应错误是 Antiforgery t ...

  2. WPF 简单打印

    <Window x:Class="_096基本打印.MainWindow"        xmlns="http://schemas.microsoft.com/w ...

  3. Android 命令设置获取、IP地址、网关、dns

    设置ip root@android:/ # ifconfig eth0 192.168.0.173 netmask 255.255.255.0 ifconfig eth0 192.168.0.173 ...

  4. flume本地调试

    本机idea远程调试flume:https://blog.csdn.net/u012373815/article/details/60601118 遇到 [root@hadoop02 bin]# ./ ...

  5. ASP.NET获取客户端、服务器端基础信息

    1. 在ASP.NET中专用属性: 获取服务器电脑名:Page.Server.ManchineName 获取用户信息:Page.User 获取客户端电脑名:Page.Request.UserHostN ...

  6. Android零基础入门第81节:Activity数据传递

    在Android开发中,经常要在Activity之间传递数据.前面也学习了Activity和Intent相关基础,接下来一起来学习Activity的数据传递. 一.简介 通过前面的学习知道,Inten ...

  7. Android零基础入门第74节:Activity启动和关闭

    上一期我们学习了Activity的创建和配置,当时留了一个悬念,如何才能在默认启动的Activity中打开其他新建的Activity呢?那么本期一起来学习如何启动和关闭Activity. 一.概述 经 ...

  8. 开源玩家福利:十大Linux免费游戏

    假如当你考虑从Windows平台迁移至Linux平台时,“我能在Linux平台上游戏吗?”这类疑问正困扰着你,那么对此这有一个答案就是“快去Linux平台吧!”.感谢开源组织一直以来坚持不懈为Linu ...

  9. 基于QT的在线打字练习软件助手(C/S模型)good

    简介   通过基于QT中QTcpServer和QTcpSocket以及UI编程,实现了基于TCP协议的C/S模型在线打字练习软件助手,服务端处理各客户端打字数据,以及显示在线打字客户列表即实时更新打字 ...

  10. QT+OpenGL读取显示图片,OpenGL在QT里的刷新问题(好几篇)

    GLuint readImage(char *filename){    GLuint tex_id;    GLint alignment; QImage tex, buf;    buf.load ...