2012-07-12 22 views
11

Tôi gặp sự cố khi chạy ZeroMQ với Java bằng Eclipse và Windows XP. Tôi đã cài đặt thành công [Tôi nghĩ] các thư viện 0MQ cũng như các ràng buộc Java. Các hướng dẫn tôi đã sử dụng để thực hiện điều đó được đặt here.Làm thế nào để chạy ZeroMQ với Java?

Hai tệp được tạo: zmq.jarjzmq.dll. Tôi đặt tệp jar trong dự án của mình, cho phép mã biên dịch OK. Tôi cũng đặt java.library.path vào thư mục của dll, thêm thư mục perf vào dự án của tôi và thêm libzmq.dll vào thư mục PATH của tôi. (Tất cả theo hướng dẫn).

tôi vẫn nhận được ngoại lệ sau đây mà tôi không thể sửa chữa:

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

gì các thư viện khác là jzmq.dll phụ thuộc vào? Tôi đã thử đặt libzmq.dll ở khắp mọi nơi nhưng điều đó không giúp được gì. This là mẫu mã tôi đang cố gắng làm việc.

Cảm ơn bạn.

Trả lời

8

Đặt bất kỳ dll nào trong Windows root hoặc Windows System32 là giải pháp cấp bách, nó chỉ kéo bạn vào Dll HELL.

Những gì bạn cần làm là thêm đường dẫn nhị phân ZQM vào hệ thống PATH.

tôi biên soạn một 64bit ZMQ & JZMQ trong một giờ, và đây là cấu trúc thư mục của tôi:

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

đây là bước:

  1. thêm đường dẫn binray vào hệ thống enviromennt, chi tiết các bước là bảng điều khiển - hệ thống --- cài đặt trước và trong tab bật lên, tìm 'tiến trình' - 'biến môi trường' --- tìm 'PATH' trong 'vairiabls hệ thống' và thêm C : \ ZMQ \ bin trong giá trị

  2. mở lời nhắc dos và nhập 'where jzmq.dll' (Tôi không chắc chắn nếu where.exe tồn tại trong XP) để xác nhận xem nó có nằm trong PATH ngay bây giờ hay không.

  3. Khởi động Eclipse và mở dự án của bạn, nhấp chuột phải vào tên dự án của bạn và chọn trong trình đơn 'đường dẫn xây dựng - thêm lưu trữ bên ngoài' chọn C: \ ZMQ \ lib \ zMQ.jar.

Đã xong!

Trong PC của tôi, ví dụ chạy đúng.

+0

1) Có lý do nào bạn muốn biên dịch, thay vì sử dụng nhị phân không? – user443854

+0

Không có gì đặc biệt, chỉ vì tất cả hệ thống của tôi là 64bit bao gồm JDK, vì vậy tôi muốn biên dịch nó ngay từ đầu. –

+1

Bạn đã sử dụng phương pháp nào để biên dịch ZMQ & JZQQ 64 bit của mình? –

1

Tôi vừa gặp sự cố này. Tôi tìm thấy một workaround bằng cách đặt jzmq.dll và libzmq.dll vào thư mục System32. Tôi không thích điều này như một giải pháp lâu dài, nhưng nó hoạt động cho thời điểm này.

+0

Cảm ơn bạn đã trả lời. Tôi chỉ cần đặt libzmq.dll vào thư mục System32 vì tôi đang tham khảo jzmq.dll trong Eclipse. Nó hoạt động, nhưng tôi vẫn cần một giải pháp lâu dài hơn. – Noah

3

Bạn nên sao chép libzmq.dll vào vị trí được chỉ bởi java.library.đường dẫn và sử dụng điều này:

System.loadLibrary("libzmq") 

Lý do là jzmq phụ thuộc vào libzmq nên libzmq phải được tải trước.

+0

Đây thực sự là cách tiếp cận tốt hơn so với sử dụng đường dẫn toàn hệ thống. –

Các vấn đề liên quan