7

java.lang.UnsatisfiedLinkError: java.lang.System の java.lang.Runtime.loadLibrary0(Runtime.java:823) の java.lang.ClassLoader.loadLibrary(ClassLoader.java:1754) の java.library.path に JMagick がありません.loadLibrary(System.java:1045)

コードを使おうとすると

ImageInfo info;

    try {
      info = new ImageInfo();
      //image = new MagickImage(info);

    } catch (MagickException e) {
      logger.error(InsightsHelper.getStackTrace(e));
    }

なぜこれが起こっているのですか?OSXでEclipseを使用しています

4

2 に答える 2

2

Eclipse が参照できるように、コンパイルしたバイナリをパスに追加する必要があります。最初に JMagick.jar をライブラリとして追加し、次にプロジェクト プロパティ -> Java ビルド パス -> ライブラリで、このプロジェクトに追加した jmagick jar をクリックし、「ネイティブ ライブラリ」の場所を編集します。 libJMagick-6.2.6.dylib が配置されている場所になります。これは、提供したリンクに記載されているためです。

于 2011-09-16T05:58:00.053 に答える
2

簡単な答えは、JVM が JMagick によって使用されるネイティブ ライブラリを見つけようとして失敗したことです。ネイティブ ライブラリがまったくないか、JVM が探している場所にありません。


ここから osx のパッケージをダウンロードしました: joggame.com/software/jmagick.html configure/make/make install を実行し、すべてうまくいきました。それを見つけるためにJava用に他に何を設定する必要がありますか?

「make install」によってネイティブ DLL がインストールされた場所を特定し、Java に適切な場所を探すように指示する必要があります。

  • Eclipse 内から起動する場合は、trigoman の回答の手順に従ってください。

  • コマンドラインから直接またはスクリプト経由で起動する場合は、コマンドにこのオプション (または同等のもの) を含める必要がありますjava

        java -Djava.library.path=/some/folder/ .... 
    

    これは JVM オプションであり、クラス名の前に置く必要があることに注意してください。

于 2010-08-24T03:48:14.250 に答える