2

ネイティブ ライブラリを jar ファイルに含めようとしていました。私はそれがどのように行われるべきかを見つけましたが、欠けているものがあります。これがマニフェスト ファイルです。

Manifest-Version: 1.0
Class-Path: .
Main-Class: ListMediaDevices

Name: library
URL: http://jspeex.sourceforge.net/
Library-Version: 0.9.7
Library-Name: JSpeex

Name: build
Build-Date: 10/05/2010 18:59
Built-With: Linux 2.6.32-21-generic amd64
Built-By: damencho

Bundle-NativeCode:
    lib/jnawtrenderer.dll;
    lib/jndirectshow.dll;
    lib/jnffmpeg.dll;
    lib/jng722.dll;
    lib/jnopus.dll;
    lib/jnportaudio.dll;
    lib/jnscreencapture.dll;
    lib/jnspeex.dll;
    lib/jnwincoreaudio.dll;
    osname=Win32;processor=x86

仕様に従って、UTF8エンコーディングを使用し、ファイルを改行で終了します。jarファイルをロードする方法

java -jar pr.jar give "Error: An unexpected error occurred while trying to open file"

問題を再現するために、lib パラメータとともにバンドル ヘッダー全体を削除し、任意のヘッダー「xyz:」を追加しました。同じエラーが発生するようです。そのため、実装で「Bundle- NativeCode:" ヘッダー。

その他の情報

java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

使用されているライブラリは libjitsi.jar です

4

1 に答える 1

5

JAR ファイルの仕様、名前と値のペア、およびセクションで指定さBundle-NativeCodeれているように、ヘッダーではタブまたは複数のスペースの代わりに単一のスペースを使用する必要があると思います。

header:            name : value
name:              alphanum *headerchar
value:             SPACE *otherchar newline *continuation
continuation:      SPACE *otherchar newline

これは私のために働くサンプルのmanifest.mfスニペットです:

Created-By: Apache Maven Bundle Plugin
Bundle-NativeCode: aaaaaaaaaaa.dll, bbbbbbbbbbb.dll, cccccccccc.dll, d
 ddddddddddddddd.dll, eeeeeeeeee.dll, ffffffff.dll, ggggggggggggggg.dl
 l, hhhhhhhhhhhhhhhhhh.dll, iiiiii.dll
于 2012-12-28T11:17:36.500 に答える