1

ここで最新の JNAerator jar (jnaerator-0.12-SNAPSHOT-20130609) をダウンロードしまし。次に、Ubuntu 13.04 64 ビットから、次のコマンドを使用して単純な C ソース (すぐ下) を翻訳しました。

java -jar jnaerator-0.12-SNAPSHOT-20130609.jar -gui -mode StandaloneJar operations.c

jar operations.jar を取得できるように


操作.c:

int myAddtion(int a, int b){
    return a+b;
}

次に、この jar を Eclipse (Juno 4.1) テスト プロジェクトのビルド パスに追加します。ここに、プロジェクト組織のスクリーンショットを示します。

私の Eclipse プロジェクト組織

ここに私のプロジェクトの単一のソースファイルがあります:

package com.gmail.loloof64.j2se.bon_compte.operations;

import operations.OperationsLibrary;

public class BonCompteTest {

    public static void main(String[] args) {
        System.out.println(OperationsLibrary.myAddtion(10, 30));
    }
}

しかし、次のエラー出力が表示されます。

juil. 02, 2013 1:19:47 PM org.bridj.BridJ log
INFO: Library not found : operations
juil. 02, 2013 1:19:47 PM org.bridj.BridJ log
INFO: Library not found : operations
Exception in thread "main" java.lang.UnsatisfiedLinkError: operations.OperationsLibrary.myAddtion(II)I
    at operations.OperationsLibrary.myAddtion(Native Method)
    at com.gmail.loloof64.j2se.bon_compte.operations.BonCompteTest.main(BonCompteTest.java:8)
# BridJ: dlopen error when loading operations : operations: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type
# BridJ: dlopen error when loading operations : operations: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type

(最後の文の意味: 共有オブジェクト ファイルを開けません: このタイプのファイルまたはフォルダはありません)。

Sun Java7 JDK (64 ビット) を使用しています。

誰かが私が忘れたことを知っていますか?

私のCソースファイルが見つからないという事実のような問題があるに違いないと確信していますが、プロジェクトとjarにいくつかの場所で追加しようとしましたが、問題は解決しませんでした.

よろしく

4

1 に答える 1

2

これらのログ (およびコマンド ライン) は、BridJ がネイティブ ライブラリ (.dll / .so / .dylib ファイル) を見つけられなかったことを示しているようです。これを修正するには、いくつかのオプションがあります。

  • ライブラリをコマンドライン引数として JNAerator に提供します
  • ライブラリがシステムにインストールされている場合は、プラットフォーム固有のルックアップ パスを調整します。wiki の Libraries Lookup を参照してください。
  • BRIDJ_OPERATIONS_LIBRARY=path環境変数または Java プロパティを使用して、実行時にフル パスを指定します。-Dbridj.operations.library=path
于 2013-07-04T12:18:25.587 に答える