私はここで壁に頭を打っています。非常によく似た質問がたくさんありますが、正確な点はありません。答えは私の顔を見ていると確信しています。UnsatisfiedLinkError OpenCV Javaコードをクロスコンパイルしようとしています
私は最初のOpenCVクロスコンパイルテストを行っています。私はOpenCV 3.1.0をEclipseのWindows 10にセットアップしました。そこにコードは正常に動作します。そこから私は実行可能な.jarを作成し、それをJessieを実行しているラズベリー・パイ3にFTPで転送しました。
Javaサポートを含むPiにOpenCV 3.1.0をインストールしました(3回目の試行で)。しかし、私は同じエラーを引き続き受けています。
コード:
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
public class Hello
{
public static void main(String[] args)
{
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
System.out.println("mat = " + mat.dump());
}
}
エラー:Iは/ usr/local/share/OpenCVの/ javaの
にOpenCVの-java310.jarを見つけたと私は試してみました
Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at Hello.main(Hello.java:9)
-Dパラメータの有無にかかわらず、コマンドラインで:
java -jar HelloEx.jar -D java.library.path=/usr/local/share/OpenCV/java
ありがとうございます
ラズベリーでopenCVを実行するためにはネイティブライブラリが必要です。クイックグーグルでは、このスレッドが表示されます。これはおそらく必要なものです:https://www.raspberrypi.org/forums/viewtopic.php?f=81&t=108749 – Sergi
私はそれについて鈍感ではありませんが、私の頭を壁に打ちのめすGoogleの結果の種類。私はちょうどそれを取得していない場合は申し訳ありません。その投稿では、私が持っているopencv 3.1のインストールを削除し、そこにリンクされているサードパーティからプリコンパイルされたバイナリをコピーする必要があります。私はネイティブライブラリを探していると思う、私はjni.hを見つけることができる、コマンドラインからそのディレクトリに-cpを試した。変化なし。 –
java.library.pathが正しく設定されているかどうかは分かりませんが、最初の投稿で間違っているので、次のように使ってみてください: 'java -Djava.library.path =/usr/local/share/OpenCV/java -jar HelloEx.jar'を実行し、Javaコードで正しく設定されているかどうかを確認することもできます(デバッグのためだけに): 'System.out.println(System.getProperty(" java.library.path " )); '。それが正しく設定され、それでも動作しない場合、私はあなたのユーザーがライブラリのフォルダとファイルに必要なアクセス許可を持っているかどうかを確認します – Sergi