7

JNA を組み込んでネイティブ C/C++ ライブラリをロードする Java サービスの構築を開始しました。この Java サービスを Raspberry PI aka arm プラットフォームで実行したいと考えています。サービスの安定した基盤の構築に成功し、Windows7 と linux-amd64/debian の両方で実行されますが、RPI プラットフォームでは上記のエラーが発生します: Exception in thread "main" java.lang.UnsatisfiedLinkError: JNA nativeサポート (/com/sun/jna/linux-arm/libjnidispatch.so) がリソース パスに見つかりません

RPI では、次のことを行いました。* libjna-java lib をインストールしました。

以下が設定されています。

ジャワ

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

クラスパス

root@pisces:/opt/TellstickReplay# echo $CLASSPATH
/usr/lib/jna

JNA をサポートする Java を満足させる設定はないようです。jna.jar と linux-arm.jar の両方を Eclipse のプロジェクトにエクスポートしようとしても、エクスポートされた jar に jar を再構築しても同じエラーが発生します。エクスポートされた jar は Windows と Linux の両方で正常にテストされているため、jar ファイルは機能しています。

また、jar ファイルのマニフェストで CLASSPATH を使用しようとしましたが、成功しませんでした。また、絶対パスから libjnidispatch.so を明示的にロードしようとしましたが、パスが 100% 正しい場合でも、JAVA は libjnidispatch.so へのファイルが見つからないという不平を言い始めます。

だから..ラズベリーPIプラットフォームでJNAサポートを正しく機能させる方法を知っている人はいますか?? お願いします、私はとてつもなくイライラして、すぐにこれを修正する希望をあきらめます..

4

5 に答える 5

2

システムの libjnidispatch.so はどこにありますか? システム上にない場合、JNA は指定されたリソース パスの jna.jar から展開しようとします。そこにもない場合は、UnsatisfiedLinkError.

可能であれば、システムに libjnidispatch.so を明示的にインストールすることをお勧めします。jna.jar バンドルは、より一般的なデスクトップ プラットフォームでの使用を容易にするために主に用意されています。

linux-arm.jarlibjnidispatch.so の最新のビルドが含まれていますが、そのような jar からネイティブを自動的にロードする方法を知っているのは WebStart だけです。/opt/lib/jna (または LD_LIBRARY_PATH の他の場所) に展開すると、リンク エラーを回避する必要があります。

于 2013-02-01T16:16:22.433 に答える
0

使用しているOSまたはその特定のJREシステムの内部フォルダ/パッケージ/JNDI構造での「libjnidispatch.so」の場所の構成のグリッチは、同じようにレイアウトされたDebianまたはJavaJRE。

于 2013-02-01T00:17:58.293 に答える