1

ここで多数の UnsatisfiedLinkError スレッドを調べましたが、私の問題に完全に適合するものはないようです。

この API を機能させようとしています: 7ZipBind

しかし、私は問題を抱えており、物事を機能させることができません。次のように、コマンドラインからサンプルコードの一部を実行しています。

C:>java -classpath "/sevenzipTest.jar;/sevenzipjbinding-AllWindows.jar;\sevenzipjbinding.jar" com.poc.sevenzip.SevenZipSimple c:\archive\test.zip

ただし、実行しようとするとエラーが発生します。

Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\Users\XXXX\AppData\Local\Temp\SevenZipJBinding-9640553\lib7-Zip-JBinding.dll: Can't
find dependent libraries
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.load0(Unknown Source)
        at java.lang.System.load(Unknown Source)
        at net.sf.sevenzipjbinding.SevenZip.initSevenZipFromPlatformJARIntern(SevenZip.java:428)
        at net.sf.sevenzipjbinding.SevenZip.initSevenZipFromPlatformJAR(SevenZip.java:235)
        at net.sf.sevenzipjbinding.SevenZip.ensureLibraryIsInitialized(SevenZip.java:578)
        at net.sf.sevenzipjbinding.SevenZip.openInArchive(SevenZip.java:567)
        at com.poc.sevenzip.SevenZipSimple.runZip(SevenZipSimple.java:25)
        at com.poc.sevenzip.SevenZipSimple.main(SevenZipSimple.java:64

私が混乱しているのは、ライブラリがファイル内に保存されているときに、ライブラリ(dllファイル)を見つけることができないと言う理由<file_path>/sevenzipjbinding-AllWindows.jarです...私は明らかにここで何か正しいことをしていません。

乾杯

4

2 に答える 2

1

バグ修正がリリースされました。バージョン 1.06rc 以降を使用してください。

ダウンロード URL:

于 2013-01-17T09:48:46.143 に答える
1

次の手順は、Windows x86 および 7 Zip JBinding バージョン 4.65-1.05 RC 用です。以下の DLL をダウンロードします。

Windows-x86のディレクトリにDLL を追加しますsevenzipjbinding-AllPlatforms.jar。次に、jarsevenzipjbinding-lib.propertiesのディレクトリに次の行を追加します。Windows-x86

sevenzipjbinding.libname.3=gpsvc.dll
sevenzipjbinding.libname.4=libgcc_s_dw2-1.dll
sevenzipjbinding.libname.5=libstdc++-6.dll
sevenzipjbinding.libname.6=sysntfy.dll

jar ファイルを変更する代わりに、DLL を (クラスパスではなく) PATH に入れることができます。

これを理解するために、 Sevenzipjbinding-AllPlatforms.jarlib7-Zip-JBinding.dllから抽出しました。次に、ファイルをDependency Walkerで開きました。

于 2012-07-19T20:14:30.870 に答える