JNA native Unterstützung (/com/sun/JVA/linux-arm/libjnidispatch.so) nicht gefunden in Ressource-Pfad
Habe ich angefangen zu bauen, ein java service, der beinhaltet JVA-laden, eine native C/C++ lib und ich möchten, führen Sie den java-Dienst auf dem Raspberry PI aka arm-Plattform. Ich habe erfolgreich einen stabilen Boden der service und es läuft auf beiden Windows7 und linux-amd64/debian, aber.. auf der Plattform RPI bekomme ich den oben genannten Fehler:
Exception in thread "main" java.lang.UnsatisfiedLinkError: JNA native Unterstützung (/com/sun/JVA/linux-arm/libjnidispatch.so) nicht gefunden in Ressource-Pfad
Auf dem RPI habe ich Folgendes getan:
* Installiert sowohl openjdk7 und java8 beta mit arm hard float support.
* Installiert libjna-java-lib.
Folgenden Satz:
Java
root@pisces:/opt/TellstickReplay# java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b36e)
Java HotSpot(TM) Client VM (build 25.0-b04, mixed mode)
root@pisces:/opt/TellstickReplay#
LD_LIBRARY_PATH
root@pisces:/opt/TellstickReplay# echo $LD_LIBRARY_PATH
/opt/lib/jna
CLASSPATH
root@pisces:/opt/TellstickReplay# echo $CLASSPATH
/usr/lib/jna
Keine Einstellungen zu erfüllen scheint JAVA mit JVA-Unterstützung. Ich habe sogar versucht zu exportieren beide jna.jar und linux-arm.jar in das Projekt in Eclipse und alle zusammen neu erstellen die jars in die jar exportiert noch immer die gleichen Fehler. Die exportierte jar-wurde erfolgreich getestet auf windows und linux, so dass die jar-Datei funktioniert.
Habe ich auch schon versucht, nur mit CLASSPATH in der Manifest in der jar-Datei, aber ohne Erfolg. Ich habe auch versucht, explizit laden die libjnidispatch.also von den absoluten Pfad, aber JAVA startet dann zu beschweren, dass es die Datei nicht finden kann, libjnidispatch.so auch, dass der Pfad 100% richtig ist.
Also.. weiß jemand, WIE man korrekt JVA-Unterstützung auf dem Raspberry PI-Plattform zu arbeiten?? Bitte, ich bin immer enorm frustriert und bald geben die Hoffnung auf, dies zu beheben..
InformationsquelleAutor Pär Fransman | 2013-01-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin neu kompilieren Apache Spark für RPI2 und ich habe ein paar Tage um das Problem zu beheben. Dann fand ich die einfachste mögliche Lösung. Alles was Sie benötigen ist ein libjnidispatch.also link in Ihrem Standard-JVM native lib-Pfad.
InformationsquelleAutor stkim1
Wo ist libjnidispatch.also auf deinem system? Wenn es nicht auf Ihrem system, JNA versucht, packen Sie es aus jna.jar aus der angegeben Ressource Pfad. Wenn es nicht da ist, erhalten Sie den
UnsatisfiedLinkError
.Es wird empfohlen, dass Sie explizit installieren libjnidispatch.also auf deinem system, wo möglich, die jna.jar die Bündelung ist vor allem dort zu erleichtern, die Nutzung mehr auf die gängigen desktop-Plattformen.
linux-arm.jar
enthält die neueste build von libjnidispatch.ja, aber nur WebStart weiß, wie man automatisch laden der native aus einem Glas, das wie. Wenn Sie entpacken Sie es in /opt/lib/jna (oder anderswo auf LD_LIBRARY_PATH), Sie sollten vermeiden, die link-Fehler.Die Fehlermeldung zeigt an, dass die JNA versucht hat, packen Sie es aus jna.jar nach erfolglosem laden über
System.loadLibrary()
. Sie können die system-Eigenschaftjna.boot.library.path
/usr/libs/jna, aber Sie sollte nicht müssen, wenn LD_LIBRARY_PATH schon gehört, dass Pfad (beachten Sie, dass in Ihrer Frage, die Sie festgelegt haben, /*opt/lib*/jna, die zu einem Fehler führen, wenn die Bibliothek eigentlich in /*usr/libs*/jna).Sie erwähnen-System.loadLibrary (), obwohl ich gelesen habe JNA mit den Eingeborenen.loadLibrary (), aber auf der Suche durch JVA-ich kann nicht finden, System.loadLibrary(). Gibt es ein signifikanten Unterschied zwischen diesen zwei??
Auch ist es ein Raspbian-image, die JVA-Arbeit, der aus der box? Ich habe die Suche nach einer Lösung für dieses für so lange kann ich nicht wirklich motivieren, die Suche nach der Quelle für diese.
Ich habe das problem gefunden. JNA.jar vermisste
libjnidispatch.so
innerhalb derjna.jar
so dass ich nur bauenjna.jar with Ant
auf dem Raspberry Pi mit openjdk6 und das problem gelöst. Seine allerdings merkwürdig, dass die Verlinkung mit-Djna.boot.librar.path=/path/to/libjnidispatch.so
noch dieUnsatisfiedLinkError
. Naja, es funktioniert jetzt =) ich Danke Ihnen sehr für Ihre patiance und input!!InformationsquelleAutor technomage
Ich die neue verpackt jna.jar (4.0) und enthält die linux-arm/libjnidispatch.so. Der code, den ich versuchte zu laufen, funktioniert jetzt.
InformationsquelleAutor Eivind
Ich würde sagen, seine mehr der "glitch der Konfiguration den Speicherort für die "libjnidispatch.also" in die OS Ihre mithilfe oder dass bestimmte JRE-Systeme interne Ordner/package/JNDI-Struktur, es kann nicht ein identisch ausgelegt Debian-oder Java-JRE.
InformationsquelleAutor nicephotog