EclipseRCP 번들 네이티브코드 사용하기.(EclipseRCP Bundle-NativeCode)
번들네이티브 코드는 무엇인가?
이클립스 RCP 환경에서 개발시에, 네이티브 코드 사용을 편리하게 하기위해,
manifest 파일에 사용할수 있도록 Bundle-NativeCode라는 헤더를 만들어 놨다.
어떻게 사용하는가?
예시)
LWJGL을 사용하기위해 번들화하여, 실행을 했는데,
분명 jar파일을 의존성에 추가했는데도 불구하고,아래와 같은 에러가 난다.
java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
LWJGL 포럼을 찾아보니, 실행할때 자바 VM Arguments로 네이티브 코드의 패스를 넣어주라고 한다.
-Djava.library.path="native code path”
이때 물론 실핼할때마다 VM Arguments에 넣어줄 수도 있지만,
Manifest.MF 파일에 다음과 같이 추가해주면 같은 효과를 볼 수 있다.
Tip.
만약 No Bundle-NativeCode match 라는 에러를 만난다면? Alias를 사용하지말고 os.name 프로퍼티를 확인하여, 그대로 써보자.
If you meet error that “No Bundle-NativeCode match", recommand you just confirm os.name property and use it.
Code:
| Bundle-NativeCode: native/windowslib.dll; |
| native/windowslib2.dll; |
| osname=Windows95; osname=Windows 95; osname=Win95; |
| osname=Windows98; osname=Windows 98; osname=Win98; |
| osname=WindowsNT; osname=Windows NT; osname=WinNT; |
| osname=WindowsCE; osname=Winndows CE; osname=WinCE; |
| osname=WindowsXP; osname=Windows XP; osname=WinXP; |
| osname=WindowsVista; osname=Windows Vista; |
| processor = i386; processor = x86 |
| native/linuxlib.so; |
| osname=Linux; processor=x86 |
| (processordef | osnamedef | osversiondef | languagedef) |
Reference
secrets-of-bundle-nativecode
Processor aliases
OS aliases