2012-12-28 2 views
2

jar 파일에 기본 라이브러리를 포함하려고 시도했습니다. 비록 그것이 어떻게 이루어져야하는지 알았지 만, 빠진 것이 있습니다. 이것은 매니페스트 파일입니다.MANIFEST 파일의 Bundle-NativeCode : 헤더에 "오류 : pr.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) 
라이브러리를 사용하고

이다

답변

5

libjitsi.jar 나는 JAR File Specification, Name-Value pairs and Sections가 지정하는대로 대신 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 
+1

스택 오버 플로우가 여러 업을 허용하는 경우, 내가 당신에게 준 것보다 :) 번들-NativeCode 헤더는) 첫 번째 빈 행 앞에 매니페스트의 첫 번째 섹션의 일부가 될 필요가 – alkber

+3

. 또한 매니페스트는 OSGi 번들 매니페스트처럼 보이지 않습니다. No Bundle-ManifestVersion 또는 Bundle-SymbolicName 헤더 ... –