2016-04-07 33 views
0

.so uzantılı bir C paylaşılan kitaplığı olarak derlenen bazı yerel kodları yüklemek için Java'da System.loadLibrary() numaralı telefonu kullanan bir kitaplık kullanıyorum. Orada önemli bir şey yok, daha önce yapmıştım ve çalışıyor (Android ve Mac OS X'de).System.loadLibrary() linux (RPi) başarısız olmasına neden olur?

Yaşadığım sorun, java uygulamasının Raspberry Pi (Raspbian Distrobution) üzerinde çalışırken .so dosyasını yüklemesi başarısız olmasıdır.

Neden bu, neden başarısız olur ve nasıl gideririm. Anlaşılır olması için

:

  • ben doğru mimarisi için ikili yüklemeniz gerekir farkındayım. Ahududu Pi için linux-arm
  • için ikili kullanıyorum. Doğru yolu ayarladım, böylece bulunması gerekiyor. pcarter olarak

    önerdi, ben -verbose:jni kullanarak denedi: Hiçbir başarı

Güncelleme 1 ile LD_LIBRARY_PATH ve java.library.path belirledik. Orada herhangi bir hata gibi görünen ancak bu çıktıyı bakın değildir:

[Dynamic-linking native method java.lang.Object.registerNatives ... JNI] 
[Registering JNI native method java.lang.Object.hashCode] 
[Registering JNI native method java.lang.Object.wait] 
[Registering JNI native method java.lang.Object.notify] 
[Registering JNI native method java.lang.Object.notifyAll] 
[Registering JNI native method java.lang.Object.clone] 
[Dynamic-linking native method java.lang.System.registerNatives ... JNI] 
[Registering JNI native method java.lang.System.currentTimeMillis] 
[Registering JNI native method java.lang.System.nanoTime] 
[Registering JNI native method java.lang.System.arraycopy] 
[Dynamic-linking native method java.lang.Thread.registerNatives ... JNI] 
[Registering JNI native method java.lang.Thread.start0] 
[Registering JNI native method java.lang.Thread.stop0] 
[Registering JNI native method java.lang.Thread.isAlive] 
[Registering JNI native method java.lang.Thread.suspend0] 
[Registering JNI native method java.lang.Thread.resume0] 
[Registering JNI native method java.lang.Thread.setPriority0] 
[Registering JNI native method java.lang.Thread.yield] 
[Registering JNI native method java.lang.Thread.sleep] 
[Registering JNI native method java.lang.Thread.currentThread] 
[Registering JNI native method java.lang.Thread.countStackFrames] 
[Registering JNI native method java.lang.Thread.interrupt0] 
[Registering JNI native method java.lang.Thread.isInterrupted] 
[Registering JNI native method java.lang.Thread.holdsLock] 
[Registering JNI native method java.lang.Thread.getThreads] 
[Registering JNI native method java.lang.Thread.dumpThreads] 
[Registering JNI native method java.lang.Thread.setNativeName] 
[Dynamic-linking native method java.security.AccessController.getStackAccessControlContext ... JNI] 
[Dynamic-linking native method java.security.AccessController.getInheritedAccessControlContext ... JNI] 
[Dynamic-linking native method java.lang.Class.registerNatives ... JNI] 
[Registering JNI native method java.lang.Class.getName0] 
[Registering JNI native method java.lang.Class.getSuperclass] 
[Registering JNI native method java.lang.Class.getInterfaces0] 
[Registering JNI native method java.lang.Class.getClassLoader0] 
[Registering JNI native method java.lang.Class.isInterface] 
[Registering JNI native method java.lang.Class.getSigners] 
[Registering JNI native method java.lang.Class.setSigners] 
[Registering JNI native method java.lang.Class.isArray] 
[Registering JNI native method java.lang.Class.isPrimitive] 
[Registering JNI native method java.lang.Class.getComponentType] 
[Registering JNI native method java.lang.Class.getModifiers] 
[Registering JNI native method java.lang.Class.getDeclaredFields0] 
[Registering JNI native method java.lang.Class.getDeclaredMethods0] 
[Registering JNI native method java.lang.Class.getDeclaredConstructors0] 
[Registering JNI native method java.lang.Class.getProtectionDomain0] 
[Registering JNI native method java.lang.Class.getDeclaredClasses0] 
[Registering JNI native method java.lang.Class.getDeclaringClass0] 
[Registering JNI native method java.lang.Class.getGenericSignature0] 
[Registering JNI native method java.lang.Class.getRawAnnotations] 
[Registering JNI native method java.lang.Class.getConstantPool] 
[Registering JNI native method java.lang.Class.desiredAssertionStatus0] 
[Registering JNI native method java.lang.Class.getEnclosingMethod0] 
[Registering JNI native method java.lang.Class.getRawTypeAnnotations] 
[Dynamic-linking native method java.lang.ClassLoader.registerNatives ... JNI] 
[Registering JNI native method java.lang.ClassLoader.retrieveDirectives] 
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI] 
[Dynamic-linking native method java.lang.Class.getPrimitiveClass ... JNI] 
[Dynamic-linking native method java.lang.Float.floatToRawIntBits ... JNI] 
[Dynamic-linking native method java.lang.Double.doubleToRawLongBits ... JNI] 
[Dynamic-linking native method java.lang.Double.longBitsToDouble ... JNI] 
[Dynamic-linking native method java.lang.System.initProperties ... JNI] 
[Dynamic-linking native method sun.misc.VM.initialize ... JNI] 
[Dynamic-linking native method sun.misc.Unsafe.registerNatives ... JNI] 
[Registering JNI native method sun.misc.Unsafe.getObject] 
[Registering JNI native method sun.misc.Unsafe.putObject] 
[Registering JNI native method sun.misc.Unsafe.getObjectVolatile] 
[Registering JNI native method sun.misc.Unsafe.putObjectVolatile] 
[Registering JNI native method sun.misc.Unsafe.getBoolean] 
[Registering JNI native method sun.misc.Unsafe.putBoolean] 
[Registering JNI native method sun.misc.Unsafe.getBooleanVolatile] 
[Registering JNI native method sun.misc.Unsafe.putBooleanVolatile] 
[Registering JNI native method sun.misc.Unsafe.getByte] 
[Registering JNI native method sun.misc.Unsafe.putByte] 
[Registering JNI native method sun.misc.Unsafe.getByteVolatile] 
[Registering JNI native method sun.misc.Unsafe.putByteVolatile] 
[Registering JNI native method sun.misc.Unsafe.getShort] 
[Registering JNI native method sun.misc.Unsafe.putShort] 
[Registering JNI native method sun.misc.Unsafe.getShortVolatile] 
[Registering JNI native method sun.misc.Unsafe.putShortVolatile] 
[Registering JNI native method sun.misc.Unsafe.getChar] 
[Registering JNI native method sun.misc.Unsafe.putChar] 
[Registering JNI native method sun.misc.Unsafe.getCharVolatile] 
[Registering JNI native method sun.misc.Unsafe.putCharVolatile] 
[Registering JNI native method sun.misc.Unsafe.getInt] 
[Registering JNI native method sun.misc.Unsafe.putInt] 
[Registering JNI native method sun.misc.Unsafe.getIntVolatile] 
[Registering JNI native method sun.misc.Unsafe.putIntVolatile] 
[Registering JNI native method sun.misc.Unsafe.getLong] 
[Registering JNI native method sun.misc.Unsafe.putLong] 
[Registering JNI native method sun.misc.Unsafe.getLongVolatile] 
[Registering JNI native method sun.misc.Unsafe.putLongVolatile] 
[Registering JNI native method sun.misc.Unsafe.getFloat] 
[Registering JNI native method sun.misc.Unsafe.putFloat] 
[Registering JNI native method sun.misc.Unsafe.getFloatVolatile] 
[Registering JNI native method sun.misc.Unsafe.putFloatVolatile] 
[Registering JNI native method sun.misc.Unsafe.getDouble] 
[Registering JNI native method sun.misc.Unsafe.putDouble] 
[Registering JNI native method sun.misc.Unsafe.getDoubleVolatile] 
[Registering JNI native method sun.misc.Unsafe.putDoubleVolatile] 
[Registering JNI native method sun.misc.Unsafe.getByte] 
[Registering JNI native method sun.misc.Unsafe.putByte] 
[Registering JNI native method sun.misc.Unsafe.getShort] 
[Registering JNI native method sun.misc.Unsafe.putShort] 
[Registering JNI native method sun.misc.Unsafe.getChar] 
[Registering JNI native method sun.misc.Unsafe.putChar] 
[Registering JNI native method sun.misc.Unsafe.getInt] 
[Registering JNI native method sun.misc.Unsafe.putInt] 
[Registering JNI native method sun.misc.Unsafe.getLong] 
[Registering JNI native method sun.misc.Unsafe.putLong] 
[Registering JNI native method sun.misc.Unsafe.getFloat] 
[Registering JNI native method sun.misc.Unsafe.putFloat] 
[Registering JNI native method sun.misc.Unsafe.getDouble] 
[Registering JNI native method sun.misc.Unsafe.putDouble] 
[Registering JNI native method sun.misc.Unsafe.getAddress] 
[Registering JNI native method sun.misc.Unsafe.putAddress] 
[Registering JNI native method sun.misc.Unsafe.allocateMemory] 
[Registering JNI native method sun.misc.Unsafe.reallocateMemory] 
[Registering JNI native method sun.misc.Unsafe.freeMemory] 
[Registering JNI native method sun.misc.Unsafe.objectFieldOffset] 
[Registering JNI native method sun.misc.Unsafe.staticFieldOffset] 
[Registering JNI native method sun.misc.Unsafe.staticFieldBase] 
[Registering JNI native method sun.misc.Unsafe.ensureClassInitialized] 
[Registering JNI native method sun.misc.Unsafe.arrayBaseOffset] 
[Registering JNI native method sun.misc.Unsafe.arrayIndexScale] 
[Registering JNI native method sun.misc.Unsafe.addressSize] 
[Registering JNI native method sun.misc.Unsafe.pageSize] 
[Dynamic-linking native method java.lang.Throwable.fillInStackTrace ... JNI] 
[Registering JNI native method sun.misc.Unsafe.getObject] 
[Registering JNI native method sun.misc.Unsafe.putObject] 
[Registering JNI native method sun.misc.Unsafe.getObjectVolatile] 
[Registering JNI native method sun.misc.Unsafe.putObjectVolatile] 
[Registering JNI native method sun.misc.Unsafe.getBoolean] 
[Registering JNI native method sun.misc.Unsafe.putBoolean] 
[Registering JNI native method sun.misc.Unsafe.getBooleanVolatile] 
[Registering JNI native method sun.misc.Unsafe.putBooleanVolatile] 
[Registering JNI native method sun.misc.Unsafe.getByte] 
[Registering JNI native method sun.misc.Unsafe.putByte] 
[Registering JNI native method sun.misc.Unsafe.getByteVolatile] 
[Registering JNI native method sun.misc.Unsafe.putByteVolatile] 
[Registering JNI native method sun.misc.Unsafe.getShort] 
[Registering JNI native method sun.misc.Unsafe.putShort] 
[Registering JNI native method sun.misc.Unsafe.getShortVolatile] 
[Registering JNI native method sun.misc.Unsafe.putShortVolatile] 
[Registering JNI native method sun.misc.Unsafe.getChar] 
[Registering JNI native method sun.misc.Unsafe.putChar] 
[Registering JNI native method sun.misc.Unsafe.getCharVolatile] 
[Registering JNI native method sun.misc.Unsafe.putCharVolatile] 
[Registering JNI native method sun.misc.Unsafe.getInt] 
[Registering JNI native method sun.misc.Unsafe.putInt] 
[Registering JNI native method sun.misc.Unsafe.getIntVolatile] 
[Registering JNI native method sun.misc.Unsafe.putIntVolatile] 
[Registering JNI native method sun.misc.Unsafe.getLong] 
[Registering JNI native method sun.misc.Unsafe.putLong] 
[Registering JNI native method sun.misc.Unsafe.getLongVolatile] 
[Registering JNI native method sun.misc.Unsafe.putLongVolatile] 
[Registering JNI native method sun.misc.Unsafe.getFloat] 
[Registering JNI native method sun.misc.Unsafe.putFloat] 
[Registering JNI native method sun.misc.Unsafe.getFloatVolatile] 
[Registering JNI native method sun.misc.Unsafe.putFloatVolatile] 
[Registering JNI native method sun.misc.Unsafe.getDouble] 
[Registering JNI native method sun.misc.Unsafe.putDouble] 
[Registering JNI native method sun.misc.Unsafe.getDoubleVolatile] 
[Registering JNI native method sun.misc.Unsafe.putDoubleVolatile] 
[Registering JNI native method sun.misc.Unsafe.getByte] 
[Registering JNI native method sun.misc.Unsafe.putByte] 
[Registering JNI native method sun.misc.Unsafe.getShort] 
[Registering JNI native method sun.misc.Unsafe.putShort] 
[Registering JNI native method sun.misc.Unsafe.getChar] 
[Registering JNI native method sun.misc.Unsafe.putChar] 
[Registering JNI native method sun.misc.Unsafe.getInt] 
[Registering JNI native method sun.misc.Unsafe.putInt] 
[Registering JNI native method sun.misc.Unsafe.getLong] 
[Registering JNI native method sun.misc.Unsafe.putLong] 
[Registering JNI native method sun.misc.Unsafe.getFloat] 
[Registering JNI native method sun.misc.Unsafe.putFloat] 
[Registering JNI native method sun.misc.Unsafe.getDouble] 
[Registering JNI native method sun.misc.Unsafe.putDouble] 
[Registering JNI native method sun.misc.Unsafe.getAddress] 
[Registering JNI native method sun.misc.Unsafe.putAddress] 
[Registering JNI native method sun.misc.Unsafe.allocateMemory] 
[Registering JNI native method sun.misc.Unsafe.reallocateMemory] 
[Registering JNI native method sun.misc.Unsafe.freeMemory] 
[Registering JNI native method sun.misc.Unsafe.objectFieldOffset] 
[Registering JNI native method sun.misc.Unsafe.staticFieldOffset] 
[Registering JNI native method sun.misc.Unsafe.staticFieldBase] 
[Registering JNI native method sun.misc.Unsafe.ensureClassInitialized] 
[Registering JNI native method sun.misc.Unsafe.arrayBaseOffset] 
[Registering JNI native method sun.misc.Unsafe.arrayIndexScale] 
[Registering JNI native method sun.misc.Unsafe.addressSize] 
[Registering JNI native method sun.misc.Unsafe.pageSize] 
[Registering JNI native method sun.misc.Unsafe.defineClass] 
[Registering JNI native method sun.misc.Unsafe.allocateInstance] 
[Registering JNI native method sun.misc.Unsafe.monitorEnter] 
[Registering JNI native method sun.misc.Unsafe.monitorExit] 
[Registering JNI native method sun.misc.Unsafe.tryMonitorEnter] 
[Registering JNI native method sun.misc.Unsafe.throwException] 
[Registering JNI native method sun.misc.Unsafe.compareAndSwapObject] 
[Registering JNI native method sun.misc.Unsafe.compareAndSwapInt] 
[Registering JNI native method sun.misc.Unsafe.compareAndSwapLong] 
[Registering JNI native method sun.misc.Unsafe.putOrderedObject] 
[Registering JNI native method sun.misc.Unsafe.putOrderedInt] 
[Registering JNI native method sun.misc.Unsafe.putOrderedLong] 
[Registering JNI native method sun.misc.Unsafe.park] 
[Registering JNI native method sun.misc.Unsafe.unpark] 
[Registering JNI native method sun.misc.Unsafe.getLoadAverage] 
[Registering JNI native method sun.misc.Unsafe.copyMemory] 
[Registering JNI native method sun.misc.Unsafe.setMemory] 
[Registering JNI native method sun.misc.Unsafe.defineAnonymousClass] 
[Registering JNI native method sun.misc.Unsafe.shouldBeInitialized] 
[Registering JNI native method sun.misc.Unsafe.loadFence] 
[Registering JNI native method sun.misc.Unsafe.storeFence] 
[Registering JNI native method sun.misc.Unsafe.fullFence] 
[Dynamic-linking native method sun.reflect.Reflection.getCallerClass ... JNI] 
[Dynamic-linking native method java.lang.String.intern ... JNI] 
[Dynamic-linking native method java.lang.Object.getClass ... JNI] 
[Dynamic-linking native method java.lang.Class.forName0 ... JNI] 
[Dynamic-linking native method sun.reflect.Reflection.getClassAccessFlags ... JNI] 
[Dynamic-linking native method sun.reflect.NativeConstructorAccessorImpl.newInstance0 ... JNI] 
[Dynamic-linking native method java.lang.Runtime.maxMemory ... JNI] 
[Dynamic-linking native method java.io.FileInputStream.initIDs ... JNI] 
[Dynamic-linking native method java.io.FileDescriptor.initIDs ... JNI] 
[Dynamic-linking native method java.io.FileOutputStream.initIDs ... JNI] 
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI] 
[Dynamic-linking native method java.lang.System.setIn0 ... JNI] 
[Dynamic-linking native method java.lang.System.setOut0 ... JNI] 
[Dynamic-linking native method java.lang.System.setErr0 ... JNI] 
[Dynamic-linking native method java.io.UnixFileSystem.initIDs ... JNI] 
[Dynamic-linking native method java.lang.System.mapLibraryName ... JNI] 
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.findBuiltinLib ... JNI] 
[Dynamic-linking native method java.io.UnixFileSystem.getBooleanAttributes0 ... JNI] 
[Dynamic-linking native method java.io.UnixFileSystem.canonicalize0 ... JNI] 
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.load ... JNI] 
[Dynamic-linking native method sun.misc.Signal.findSignal ... JNI] 
[Dynamic-linking native method sun.misc.Signal.handle0 ... JNI] 
[Dynamic-linking native method java.lang.Compiler.registerNatives ... JNI] 
[Registering JNI native method java.lang.Compiler.compileClass] 
[Registering JNI native method java.lang.Compiler.compileClasses] 
[Registering JNI native method java.lang.Compiler.command] 
[Registering JNI native method java.lang.Compiler.enable] 
[Registering JNI native method java.lang.Compiler.disable] 
[Dynamic-linking native method java.lang.Class.isAssignableFrom ... JNI] 
[Dynamic-linking native method java.io.FileInputStream.open ... JNI] 
[Dynamic-linking native method java.io.FileInputStream.readBytes ... JNI] 
[Dynamic-linking native method java.io.FileInputStream.available ... JNI] 
[Dynamic-linking native method java.lang.reflect.Array.newArray ... JNI] 
[Dynamic-linking native method java.io.FileInputStream.close0 ... JNI] 
[Dynamic-linking native method java.io.UnixFileSystem.list ... JNI] 
[Dynamic-linking native method java.lang.Runtime.availableProcessors ... JNI] 
[Dynamic-linking native method java.lang.invoke.MethodHandleNatives.registerNatives ... JNI] 
[Registering JNI native method java.lang.invoke.MethodHandleNatives.init] 
[Registering JNI native method java.lang.invoke.MethodHandleNatives.expand] 
[Registering JNI native method java.lang.invoke.MethodHandleNatives.resolve] 
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getConstant] 
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getNamedCon] 
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getMembers] 
[Registering JNI native method java.lang.invoke.MethodHandleNatives.objectFieldOffset] 
[Registering JNI native method java.lang.invoke.MethodHandleNatives.setCallSiteTargetNormal] 
[Registering JNI native method java.lang.invoke.MethodHandleNatives.setCallSiteTargetVolatile] 
[Registering JNI native method java.lang.invoke.MethodHandleNatives.staticFieldOffset] 
[Registering JNI native method java.lang.invoke.MethodHandleNatives.staticFieldBase] 
[Registering JNI native method java.lang.invoke.MethodHandleNatives.getMemberVMInfo] 
[Registering JNI native method java.lang.invoke.MethodHandle.invoke] 
[Registering JNI native method java.lang.invoke.MethodHandle.invokeExact] 
[Dynamic-linking native method java.lang.ClassLoader$NativeLibrary.find ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.initIDs ... JNI] 
[Dynamic-linking native method java.io.UnixFileSystem.getLastModifiedTime ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.open ... JNI] 
[Dynamic-linking native method sun.misc.Perf.registerNatives ... JNI] 
[Registering JNI native method sun.misc.Perf.attach] 
[Registering JNI native method sun.misc.Perf.detach] 
[Registering JNI native method sun.misc.Perf.createLong] 
[Registering JNI native method sun.misc.Perf.createByteArray] 
[Registering JNI native method sun.misc.Perf.highResCounter] 
[Registering JNI native method sun.misc.Perf.highResFrequency] 
[Dynamic-linking native method java.util.zip.ZipFile.getTotal ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.startsWithLOC ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.getEntry ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.getEntryFlag ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.getEntryTime ... JNI] 
[Dynamic-linking native method java.util.TimeZone.getSystemTimeZoneID ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.getEntryCrc ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.getEntrySize ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.getEntryCSize ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.getEntryMethod ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.getEntryBytes ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.freeEntry ... JNI] 
[Dynamic-linking native method java.util.zip.Inflater.initIDs ... JNI] 
[Dynamic-linking native method java.util.zip.Inflater.init ... JNI] 
[Dynamic-linking native method java.util.zip.Inflater.inflateBytes ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.read ... JNI] 
[Dynamic-linking native method java.util.zip.Inflater.reset ... JNI] 
[Dynamic-linking native method java.util.zip.Inflater.end ... JNI] 
[Dynamic-linking native method java.util.zip.ZipFile.close ... JNI] 
[Dynamic-linking native method java.lang.ClassLoader.findLoadedClass0 ... JNI] 
[Dynamic-linking native method java.lang.ClassLoader.findBootstrapClass ... JNI] 
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI] 
[Dynamic-linking native method java.util.jar.JarFile.getMetaInfEntryNames ... JNI] 
[Dynamic-linking native method java.lang.Package.getSystemPackage0 ... JNI] 
[Dynamic-linking native method java.lang.ClassLoader.defineClass1 ... JNI] 
[Dynamic-linking native method sun.reflect.NativeMethodAccessorImpl.invoke0 ... JNI] 
[Dynamic-linking native method java.security.AccessController.doPrivileged ... JNI] 
[Dynamic-linking native method java.io.FileOutputStream.writeBytes ... JNI] 
*** Loading hardcoded library 
[Dynamic-linking native method java.lang.System.identityHashCode ... JNI] 
[Dynamic-linking native method java.lang.Throwable.getStackTraceDepth ... JNI] 
[Dynamic-linking native method java.lang.Throwable.getStackTraceElement ... JNI] 
[Dynamic-linking native method java.lang.Class.isInstance ... JNI] 
[Dynamic-linking native method java.util.concurrent.atomic.AtomicLong.VMSupportsCS8 ... JNI] 
[Dynamic-linking native method java.lang.reflect.Proxy.defineClass0 ... JNI] 
Working Directory = /home/pi/conor/JavaGo 

Ve tam hata ile ilgili olarak

aşağıdaki bakın: Tam

İleti gövdesini, stacktrace ama için this paste bakın

java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no jffi-1.2 in java.library.path 

I buna uygun olarak, -Djava.library.path ve -DLD_LIBRARY_PATH kullanılarak yolunu ayarlamak olduğunu vurgulamak istiyoruz aşağıdaki gibidir: stacktrace ana hatadır. Koddan dolayı bir yanıt vereceğim

+0

görüyorum, benzer zorluklar başlamıştı ve I * halde ortaya çıktı düşünce * Kütüphane yolunu doğru bir şekilde ayarladım, ayarlanmadı. % 100, gerçekten doğru şekilde ayarlandığından kesinlikle emin misiniz? – gsaslis

+0

Maalesef doğru olduğundan eminim :( – conor

+0

Aldığınız hata nedir? Hata ayıklamak için 'java' program başlatıcısına' -verbose: jni' seçeneğini eklemeyi denediniz mi? – pcarter

cevap

0

.

: Sen jffi-1.2 Bu yolda bulunan veya yine bilgisayarınızda

https://examples.javacodegeeks.com/java-basics/java-library-path-what-is-it-and-how-to-use/ ise diyor edilebilir olmadığı kontrol edilir senin java.library.path

public class JavaLibPath { 

    public static void main(String[] args) { 
     String libPathProperty = System.getProperty("java.library.path"); 
     System.out.println(libPathProperty); 
    } 
} 

görmek için bu kullanabilirsiniz

Bir Java uygulaması,System.loadLibrary()yöntemini kullanarak bir yerel kitaplığı yüklediğinde, java.library.path belirtilen kitaplık için taranır. JVM istenen kitaplığı algılayamazsa,UnsatisfiedLinkError'u atar. Son olarak, yerel kitaplıkların kullanımı, bir Java programını belirli yerel kitaplıkların varlığını gerektirdiğinden daha fazla platform bağımlı hale getirir.

GÜNCELLEME: Bu jffi RPI varsayılan olarak yüklü değildir görünüyor, bu bağlantıyı http://peterwawood.blogspot.de/2014/07/compling-jffi-on-raspberry-pi.html ve geçmiş projede bu How to build JRuby 1.7.13 on Raspberry Pi with rbenv/ruby-build?

İlgili konular