Skip to main content

Native Library in Eclipse RCP

Native Library in Eclipse RCP Plug-in

Adding native library in eclipse RCP is little-bit bit tricky part. Mainly native library has extensions like .so or .dll . There are multiple ways to define this kind of libraries to the eclipse RCP plug-in. (Follow steps one by one anyone of them will work.)

Here we take one example :
Suppose you have following directory structure

<dirPath>/NativeLibraryDirectory/
     --- nativeFile.jar
     --- nativeLib.so


1. Adding library to the project

For adding library to the project , right click on Project name -> select "Properties..." -> then go to "Java Build Path"
Add nativeFile.jar from External jar button.
Expand nativeFile.jar and double click on "native library location"
enter the path "<dirPath>/NativeLibraryDirectory/"

2. Using LD_LIBRARY_PATH
Set following environment before starting the Eclipse.

setenv LD_LIBRARY_PATH <dirPath>/NativeLibraryDirectory/:$LD_LIBRARY_PATH

3. Using -Djava.library.path

-Djava.library.path=<dirPath>/NativeLibraryDirectory/

4. Updating Menifiest (Bundle-Nativecode)

Add following line in MANIFEST.MF

Bundle-NativeCode: /libs/yourlib.dll; /libs/someotherlib.dll; osname=win32; processor=x86


Anyone of above method will work so try it one by one. The do following steps.



Before Using the libray in the code mention following lines
System.loadLibrary("nativeLib")

Comments

Popular posts from this blog

Could not launch the product because the associated workspace is currently in use by another Eclipse application

If you are seeing following error at the beginning of the Eclipse or any RCP based product then here is the solution: Error Message: "Could not launch the product because the associated workspace is currently in use by another Eclipse application." or “Workspace in use or cannot be created chose a different one.” Solution :  go to workspace location remove file <workspace location>/.metadata/.lock Reason: Through eclipse, user can create multiple Workspace locations. One Workspace location can be edited by one user at a time. A workspace contains the data related to various project configuration and local file storage. To avoid multiple users to access the same workspace, eclipse is maintaining a ".lock" file inside the Workspace. Eclipse will remove this ".lock" file when you will close the Eclipse. But in some cases, the Eclipse will crash due to some error, due to which it could not able to remove ".lock" file from

Cannot complete the install because one or more required items could not be found.

Error While installing Maven in Eclipse Cannot complete the install because one or more required items could not be found.   Software being installed: m2e - Maven Integration for Eclipse 1.4.0.20130601-0317 (org.eclipse.m2e.feature. feature.group 1.4.0.20130601-0317)   Missing requirement: Maven POM XML Editor 1.4.0.20130601-0317 (org.eclipse.m2e.editor.xml 1.4.0.20130601-0317) requires 'bundle org.slf4j.api 1.6.2' but it could not be found   Cannot satisfy dependency:     From: Maven Integration for Eclipse (Editors) 1.4.0.20130601-0317 (org.eclipse.m2e.editor 1.4.0.20130601-0317)     To: bundle org.eclipse.m2e.editor.xml [1.4.0,1.5.0)   Cannot satisfy dependency:     From: m2e - Maven Integration for Eclipse 1.4.0.20130601-0317 (org.eclipse.m2e.feature. feature.group 1.4.0.20130601-0317)     To: org.eclipse.m2e.editor [1.4.0.20130601-0317] Solution : 1. Goto : Help -> Install New Software 2. Add following URL in "Work with:" http:

HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException

HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException If you get following error while connecting to your Database with Spring boot, try the suggested solution below: 2018 - 11 - 25 15 : 28 : 50.078 INFO 5335 --- [ main] o. h . e . j . e . i . LobCreatorBuilderImpl : HHH000424: Disabling contextual LOB creation as createClob() method threw error : java. lang . reflect . InvocationTargetException java. lang . reflect . InvocationTargetException : null at sun. reflect . NativeMethodAccessorImpl . invoke0 (Native Method) ~[na: 1.8 . 0 _161] at sun. reflect . NativeMethodAccessorImpl . invoke (NativeMethodAccessorImpl. java : 62 ) ~[na: 1.8 . 0 _161] at sun. reflect . DelegatingMethodAccessorImpl . invoke (DelegatingMethodAccessorImpl. java : 43 ) ~[na: 1.8 . 0 _161] at java. lang . reflect . Method . invoke (Method. java : 498 ) ~[na: 1.8 . 0 _161] at org. hibernate . engin