2017-07-02 9 views
0

Windows 10 OSを使用していて、ここで説明するようにJPBC(ペアベース暗号化)を実行しようとします。http://gas.dia.unisa.it/projects/jpbc/buildHowto.html#.WVlWQ4jyhhE。インストールはライブラリではうまくいきましたが、ローカルのmavenリポジトリ.m2 \ repository \ it \ unisa \ dia \ gasに.jarファイルと.javaファイルを含むたくさんのフォルダがあります。ファイルの1つはjpbc-pbcですがもっとありますWindowsを使用したjarライブラリでSystem.loadLibraryを使用する

私はgradleからこれらのファイルのいくつかが必要なプロジェクトをインポートしました。このプロジェクトは、これはエラーをスローし、今ラインに

System.loadLibrary("jpbc-pbc"); 

が含まれていますCへ

Could not load library jpbc-pbc. JCPABE will be extremely slow. 
java.lang.UnsatisfiedLinkError: no jpbc-pbc in java.library.path 
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) 
at java.lang.Runtime.loadLibrary0(Runtime.java:870) 
at java.lang.System.loadLibrary(System.java:1122) 
at cpabe.Cpabe.<clinit>(Cpabe.java:24) 
at cpabe.demo.DemoForCpabe.main(DemoForCpabe.java:63) 

私のパス変数のリンク:\プログラムファイル\のJava \ jdk1.8.0_131を。今では私が試してみると、.jarをsrcフォルダに入れるか、またはその両方を入れても、私はこのエラーを受け取ります。 私は何が間違っていますか? jpbc-PBCの

フォルダ構造は

jpbc-pbc 
/2.0.0 
//jpbc-pbc-2.0.0.jar 
/src 
//main (and so on) 
//test (and so on) 
/CMakeLists.txt 
/FindGMP.cmake 
/FindPBC.cmake 
/maven-metadata-local.xml 
/pom.xml 
+0

'のLoadLibrary()は'ロード用です'.jar'ファイルではなく' .dll'ファイルです。 – Andreas

+0

なぜ彼らはコード内でそれを使用し、.jarファイルとリンクしていますか? 私に代わる方法はありますか? –

+0

Javaコードでは、高性能な暗号化ロジックを実行するために、DLLファイルにネイティブにコンパイルされたコードが必要です。それは警告* "JCPABEが極端に遅くなる" *のことです。高速のネイティブコードがなければ、暗号化はJavaコードを使用して行われますが、そのようなことは非常に遅くなります。 – Andreas

答えて

-1

jpbc-PBCライブラリがあなたがjava.library.pathではないです。 使用してそれを追加してみてください:

1.コマンドラインを

java -Djava.library.path=<path_to_dll> <main_class> 

2.

System.setProperty(“java.library.path”, “/path/to/library”); 

3. IDE

はIDEあなた次第ソースコードたとえば、Eclipseで次のように使用できます。

  • ビルドパスを選択し、パッケージエクスプローラでプロジェクトを右クリック - > [設定ビ​​ルド・パス
  • はライブラリ]タブで、あなたのライブラリーを追加
+0

java -Djava.library.path = しかし、私は唯一の.jarを持っています。私はjava -Djava.library.path = Desktop/jpbc-pbc/2.0.0 jpbc-pbc-2.0.0.jarを試しましたが、どこにでもアクセスが拒否されています。 –

+0

@MarcBurian '.jar'ファイルと' .dll'ファイルがない場合は、ライブラリパスを気にしないでください。ライブラリパスの目的は '.dll'ファイルがある場所を1つ以上指定することです。しかし、 '.jar'ファイルはどこにあるのか再確認するべきです。なぜなら' .dll'ファイルもそこにある可能性が高いからです。 – Andreas

+0

.jarファイルがある場合は、ライブラリパスではなくクラスパスに追加する必要はありません。 –

関連する問題