![](/img/trans.png)
[英]Installing the Java ZeroMQ binding (jzmq) using Maven, Missing Native Code Library
[英]Understanding zeromq java binding
我正在調查zeromq作為java項目中的消息傳遞解決方案,但我發現有關java綁定的說明有點難以理解。 http://www.zeromq.org/bindings:java
我不熟悉java綁定,所以這些可能是愚蠢的問題,但有人可以幫助我理解:
我覺得zeromq上提供的說明需要熟悉構建我缺乏的C項目,所以也許我只是在密集,但這似乎很多工作。
作為ZeroMQ Java綁定的同伴,我表示同情。 ZeroMQ絕對是要管理的更具挑戰性的Java依賴項之一。 在它的核心,ZeroMQ是本機C代碼,Java綁定是圍繞到核心ZeroMQ庫的JNI接口的(相對)輕量級包裝器,這就是部署復雜的原因。
順便說一句 - 如果ZeroMQ非常適合您的應用程序,那么它非常值得一試,因為它確實沒有什么比這更好的了。 不幸的是,這意味着您需要完成所有這些步驟才能使其正常工作,以便您可以決定它是否是您真正需要的。
ZeroMQ for Java基於三個組件:
我在一台機器上構建的罐子可以在另一個系統上運行嗎? 我需要這個應用程序是可移植的。
是。 罐子是便攜式的。 您可以在任何計算機上構建它並將其部署在任何其他計算機上。 不過這很容易。 困難的部分是創建所需的各種DLL,這些DLL不可移植。 假設你想支持Windows,Mac和Fedora Linux。 您將需要Windows,Mac和Fedora上的本機開發環境,並為您要支持的每個平台構建DLL。
我對Linux的了解不足以說明構建在一個發行版(比如Fedora)上的DLL是否會在另一個發行版上運行(比如說Debian)。 如果沒有,那么你還有更多的工作要做。
無論如何,您的應用程序將是可移植的 - ZeroMQ和JZMQ可以在大量平台上運行 - 但您需要嚴格控制部署過程,以確保在安裝每個平台時,jar和適當的DLL集合都是已安裝,並且它們安裝在正確的位置。
為什么我需要安裝任何東西?
從技術上講,你沒有。 但我認為他們建議執行make install
步驟,以便include和庫文件是編譯器所期望的位置,以便Java可以在運行程序時加載它們。
如果是這樣,為什么我要開始建立自己的罐子?
我不是提交者所以我不能肯定地說。 我希望它的一部分是開發人員效率 - 他們寧願改進代碼而不是為可以自己創建jar的用戶創建jar。
更重要的是 - 由於罐子不夠而且你必須構建DLL,所以將jar和DLL組合起來更有意義。 這樣您就可以確定JNI包裝器具有在C中實現的正確本機方法,以匹配Java包裝器類中的本機聲明。
祝好運。 希望這可以幫助。
就個人而言,我確實認為預先制作的JAR可以在很大程度上幫助java中的0MQ。 雖然我在許多站點使用Java工作,但他們不提供MSVS並且必須經歷如此冗長的設置才能得到一個dll和jar似乎對我有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.