11

Eclipse と Windows XP を使用して Java で ZeroMQ を実行すると問題が発生します。0MQ ライブラリと Java バインディングを正常にインストールしました。私が行っていた手順は、ここにあります

zmq.jarjzmq.dllの 2 つのファイルが作成されました。プロジェクトに jar ファイルを配置すると、コードを正常にコンパイルできました。また、java.library.pathを dll のディレクトリに設定し、perf ディレクトリをプロジェクトに追加し、libzmq.dll を PATH に追加しました。(すべて指示に従って)。

修正できない次の例外が引き続き発生します。

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\jzmq\lib\jzmq.dll: Can't find dependent libraries

jzmq.dll が依存している他のライブラリは何ですか? libzmq.dll をどこにでも配置しようとしましたが、役に立ちませんでした。これは、私が動作させようとしているコード サンプルです。

ありがとうございました。

4

3 に答える 3

8

dll を Windows ルートに配置するか、Windows System32 は緊急のソリューションです。Dll HELL に引き込まれます。

システム PATHに ZQM バイナリ パスを追加する必要があります。

64 ビット ZMQ と JZMQ を 1 時間でコンパイルしました。フォルダー構造は次のとおりです。

c:\ZMQ\bin  
 --- jzmq.dll、libzmq.dll
c:\ZMQ\lib
 --- ZMQ.jar

ここにステップがあります:

  1. binray パスをシステム環境に追加します。詳細な手順はコントロール パネルです。システム --- 事前設定です。ポップアップ タブで、「事前設定」-「環境変数」を見つけます。---「パス」を見つけます。 'system vairiabls' を変更し、値に C:\ZMQ\bin を追加します

  2. dosプロンプトを開き、「where jzmq.dll」と入力して(XPにwhere.exeが存在するかどうかはわかりません)、現在PATHにあるかどうかを確認します。

  3. Eclipse を起動し、プロジェクトを開き、プロジェクト名を右クリックして、メニューで [ビルド パス -- 外部アーカイブの追加] を選択し、C:\ZMQ\lib\zMQ.jar を選択します。

すべて完了!

私の PC では、この例は正しく実行されます。

于 2012-11-28T03:20:34.347 に答える
3

libzmq.dll を java.library.path が指す場所にコピーし、これを使用する必要があります。

System.loadLibrary("libzmq")

その理由は、jzmq が libzmq に依存しているため、libzmq を最初にロードする必要があるためです。

于 2013-02-16T17:51:49.097 に答える
1

私もこの問題に遭遇しました。jzmq.dll と libzmq.dll を System32 フォルダーに入れることで回避策を見つけました。これは永続的な解決策としては好きではありませんが、現時点では機能します。

于 2012-07-13T04:02:44.807 に答える