Mac OS makinemde iyi çalışan bir Java uygulaması (JAR) derledim. Derlenmiş bir C-Shared kütüphanesini çağırmak için JNI kullanır ve bu yerel kodu yüklemek için jnr-ffi kullanır.JNI ile ilgili uygulama yüklenemedi Raspberry Pi
Jnr-ffi'den başlatılmaya çalışan bir sürü hata alıyorum. Java yüklemesinin bir parçası olarak sistemde bulunması gereken bazı jni dosyaları olmalı, ancak mevcut değil.
Ben stacktrace kopyalayamazsınız kelimesi kelimesine ama burada yararlı olmalı hatalardan bazıları şunlardır:
Exception in thread "main" j.l.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.provider
Another unsatisfied link error below: /tmp/...gibberish..so cannot open shared object file: no such file or directory.
Another unsatisfied link error: Can't load library: /usr/lib/libjffi-1.2so
Temelde yerel kod yükleme ilgili hataların bir demet.
O ben çalıştırmak çalışıyorum JAR ayıkladıktan değer bir şey de olduğunu ve böyle arm-Linux
, Darwin
, i386-Linux
olarak klasörlerin bir demet içerir ve libjffi-1.2.so
Yani dosyaları gibi görünüyor dosya JAR var ama çalışma zamanında, Jave onları bulmakta zorlanıyor.
Bunu nasıl düzelteceğimi anlayamıyorum ve diğer makinede çalıştı. Nasıl düzeltilir?
sudo
ile çalıştırmayı denedim.
Teşekkürler, bunu deneyeceğim. Ancak,/tmp dizini ile rasgele bir dosya adı ile arama yapılıyor? – conor
Kural dışı durumdaki arama yollarından biri geçerli bir yoldur .. Neden bu? – conor
Java, geçici klasör kavramına sahiptir. Java kaynak kodunda, programcı kütüphaneyi bunun üzerine çözmeye çalışıyor olabilir. Kütüphaneyi içeren bazı arşivleri tmp klasöründe açmaya çalışabilir, ancak arşiv mevcut olmadığından ayıklanan dosya mevcut olmaz. (sadece burada hitap ediyor) – snovelli