2011-11-19 32 views
13

Tôi đang cố gắng sử dụng thư viện giao tiếp nối tiếp 64 bit rxtx (tải xuống từ cloudhopper) với các cửa sổ 64 bit 7 và nhật thực. Tôi nhận được thông báo: java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path. Các dll nằm trong thư mục /jre/lib cũng như Windows/System32. RXTXcomm.jar nằm trong đường dẫn xây dựng cho nhật thực cũng như trong thư mục jre/lib/ext. Tôi chạy trình giám sát quá trình trong nền và thấy rằng RXTXcomm.jar, rxtxSerial.dllrxtxParallel.dll đều được tìm thấy và đã được mở, Vì vậy, tôi không rõ lý do tại sao sự cố này xảy ra.java.lang.UnsatisfiedLinkError: no rxtxSerial trong java.library.path

Mọi đề xuất.

Trả lời

2

Hy, tôi đã gặp vấn đề tương tự khi tích hợp RXTXcomm vào Netbeans trong Ubuntu 11.10. Tôi đoán rằng bạn không sao chép các tệp ở đúng nơi, ít nhất đó là vấn đề của tôi.

Theo Ubuntu java được cài đặt trong usr/lib/jvm. NHƯNG ở đây tôi đã có rất nhiều forders (ví dụ: java-7-openjdk-i386, java-7-common, java-6-openjdk ...). Trong Netbeans tôi kiểm tra đường dẫn của JDK được đưa vào dự án là gì, nó là java-7-openjdk-i386. vì vậy tôi lấy rxtxSerial.so (dưới cửa sổ nó là rxtxSerial.dll) và sao chép nó vào java-7-openjdk-i386/jre/bin và nó hoạt động như một sự quyến rũ.

Tôi hy vọng điều này sẽ hữu ích.

+0

Tôi đã đọc điều đó và tôi đã đặt các tệp dll và bình vào đúng vị trí và trình theo dõi quá trình cho biết jvm nhìn thấy chúng. Đó là lý do tại sao tôi bối rối. – sldahlin

+0

Điều này đã giúp tôi thiết lập Eclipse trên Ubuntu 12.10. Cảm ơn. – Kasisnu

6

Bạn có thể cài đặt gói librxtx-java từ repo cho Ubuntu.

+2

Điều kỳ lạ là, nó được cài đặt trên hệ thống của tôi, nhưng tôi nhận được thông báo này. Kỳ dị. –

+1

@Doc nó hoạt động nếu bạn chỉ định vị trí, java ** - Djava.library.path =/usr/lib/jni ** -jar YourApp.jar –

1

Tôi gặp vấn đề tương tự. Vì vậy, tôi đã cài đặt JDK 32 bit và thêm các tệp RxTx (x86) đó vào Tệp chương trình (x86)/java/... thay vì Tệp chương trình/java ... thư mục. Ngoài ra tôi đã thêm các tệp RxTx .dll (x86) này vào /System32. Sau đó vấn đề đã được giải quyết trong ứng dụng của tôi.

4

Bạn cũng có thể thêm một đối số máy ảo:

-Djava.library.path=c:\path\to\dll\ 

hoặc

-Djava.library.path=/path/to/lib/ 

Đó làm việc cho tôi. Cũng tham khảo này question.

2

Tôi đã gặp sự cố tương tự ngay cả sau khi cài đặt RXTXcomm.jar trong thư mục Java \ jdk \ lib. Dựa trên hướng dẫn tại http://www.jcontrol.org/download/readme_rxtx_en.html Tôi định vị tệp rxtxSerial.dll và tệp rxtxParallel.dll. Đặt chúng vào thư mục bin không giúp đỡ, nhưng đặt chúng trong thư mục lib cùng với RXTXcomm.jar đã giải quyết được vấn đề.

4

người dùng Windows: vấn đề của tôi đã thực sự mà tôi đã đặt rxtxSerial.dllrxtxParallel.dll file trong thư mục sai.

Trong trường hợp của tôi, chúng nằm trong số [...]/jdk1.7.0_09/bin/ thay vì [...]/jre7/bin/, mặc dù đường dẫn có thể khác nhau đối với các phiên bản Java khác nhau.

Sau khi tất cả đó là logic, nếu chúng ta muốn JAR của chúng tôi để chạy bên ngoài IDE của chúng tôi, chúng ta phải có dlls trong môi trường java chạy của chúng tôi, không phải trong môi trường phát triển của chúng tôi :)

1

FIXED:

khi sử dụng IDE như Netbeans, nó có thư mục riêng cho JRE, có lẽ bạn đã cài đặt trình điều khiển RXTX, nhưng khi chạy tệp JAR ngoài IDE của bạn, lỗi này xảy ra ... Giải pháp đang cài đặt trình điều khiển RXTX bên trong JAVA Thư mục JRE sử dụng để chạy tất cả các tệp JAR của bạn.

11

Đi tới Dự án -> thuộc tính -> Đường dẫn xây dựng Java -> Tìm tệp .jar của bạn. Nhấp vào + để mở thuộc tính của JAR. Chọn vị trí thư viện gốc và chỉnh sửa nó để trỏ đến thư viện được chia sẻ của RXTX (.DLL, .so, .dylib).

+1

Nó đã giúp, cách dễ nhất và nhanh nhất. ;) –

2

tôi giải quyết vấn đề này bằng cách thêm rxtxSerial.dll [jre 1.8.0_45/bin] và RxTxcomm.jar [jre 1.8.0_45/lib/ext]

+0

đặt đường dẫn xây dựng là jre 1.8.0_45/lib/ext/RxTxComm.jar –

+0

[link] (http://jlog.org/rxtx-win.html) để tải xuống .dll và .jar –

0

Under Netbeans 5.5 on Windows, I needed to right-click Libraries under Projects on the left hand side of the screen, and select "Add JAR/Folder", picking the RXTXcomm.jar file. Only then did my

enter code here 

become a valid command. Also, I got a run-time error where it failed to load the rxtxSerial.DLL library because it couldn't find it. I needed to right-click the project name, select properties, select Run under categories, and add a VM Options: entry of

-Djava .library.path = "C: \ nơi chưa từng có-bạn-kẹt-rxtxSerial.DLL-file;% PATH%

Example:

-Djava.library.path="C:\rxtx-2.1-7-bins-r2\Windows\i368-mingw32\;%PATH%" 

While I'm sure there is more than one way of adding the directory to your path, this worked for me. Note I did the default NetBeans 5.5/JDK 1.6.0 isntall accepting all the default options(ie clicking next until I got to finish), so I haven't modified my java paths or anything. Alternatively you can copy the *.dll into C:\Windows\System32\, Java will find it there automatically.

Lưu ý rằng bạn không thể sử dụng DLL 32bit khi chạy một JRE 64bit: Bạn sẽ nhận được một lỗi tương tự như:

Can't load IA 32-bit .dll on a AMD 64-bit platform thrown while loading gnu.io.RXTXCommDriver 

To solve this simply install the 32bit JDK and add a new Platform in Netbeans under Tools->Java Platforms->Add Platform and change the project settings to use the newly created platform. make sure you type

"import gnu.io.*"

từ http://rxtx.qbang.org/wiki/index.php/Using_RXTX_In_NetBeans

0

tôi đã có cùng một vấn đề, trên windows 10 và eclipse, probelm là tôi đã có java cho 32 và 64 bit, vì vậy tôi đã cài đặt thư viện RXTX cho 64 bit nhưng nhật thực đã sử dụng 32 bit s môi trường java, vì vậy những gì tôi đã làm là tải về RXTX cho 32 bit sao chép các tập tin cần thiết để C: ProgramFilesx86/JAVA_HOME như trong các hướng dẫn cho RXTX và vấn đề đã được giải quyết. Hy vọng điều này sẽ giúp bất cứ ai.

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