JamVm führt keine Anwendung (die jpcap verwendet) auf Gumstix aus
-
14-12-2019 - |
Frage
Ich bin ein Neuling hier und entschuldige mich im Voraus dafür, dass ich etwas Dummes/Offensichtliches gefragt habe.Ich versuche, eine Java-Anwendung auf einem Gumstix-Overo-Board (Linux-Kernel 2.6.34) auszuführen.Bisher habe ich JamVm (jvm), den Jikes-Compiler und die Klassenpfadbibliotheken installiert (gemäß den Anweisungen in dieses Tutorial).Ich habe ein HelloWorld-Programm ausgeführt und es schien in Ordnung zu sein.
Wenn ich nun versuche, eine andere Anwendung (z. B. „MyApp“) auszuführen, die „jpcap“-Bibliotheken verwendet, gibt mir die JVM eine Fehlermeldung aus, die so aussieht:Ausnahme beim Event-Versand:java.lang.UnsatisfiedLinkError:Native libarary 'jpcap' nicht gefunden (als Datei 'libjpcap.so') in gnu.classpath.boot.library.path und java.library.path...
Diese Anwendung wurde mit Netbeans 7.1 kompiliert.Es erzeugte einen DIST -Ordner, dessen Struktur Folgendes ist:
dist:|-myapp.jar |-Readme |-lib (Ordner) | --- |-jpcap.jar | --- |-Swing-Layout-1.0.4.jar
Die Readme sagt, dass man in den DIST -Ordner gehen und 'Java -Jar "myapp.jar" eingeben sollte, um diese Anwendung bereitzustellen.Wenn ich das tue („jamvm -jar MyApp.jar“), erhalte ich die oben erwähnte Fehlermeldung.
Auf meinem Gumstix-Board ist libpcap-1.1.1-r1.6 installiert.(Ich habe /usr/lib/libpcap.so.1 auf meinem Board gefunden.)
Weiß jemand, was falsch läuft?Für jeden Rat wäre ich sehr dankbar.
Ps:Ich habe diese Frage erst vor ein paar Minuten auf der Gumstix-Benutzerliste gepostet.Ich poste auch hier, nur um eine bessere Chance auf eine Antwort zu haben.Ich hoffe, das ist für alle hier in Ordnung.
Lösung
Der libjpcap.so
sollte drin sein gnu.classpath.boot.library.path
oder java.library.path
wie der Fehler besagt.Sie können diese Pfade ausdrucken, indem Sie sie mit herunterladen System.getProperty("java.library.path")
Aber /usr/lib
ist eine gute Vermutung.