![]() ![]() Upgrade to a newer Equinox version: probably the best solution. The solutionīasically there are three possible solutions: BTW, the row was introduced with the Juno release (3.8). We are using an old version of Equinox (3.7.2) whose mapping table does not contain a row for Windows 8 because it was not released at that time and it was not possible to anticipate which values the Java VM would provide. The reason why this mechanism fails with our application is simple. This entry makes sure that a condition osname=Win32 even resolves if Java reports Windows7 as the operating system name. Windows7 “Windows 7” Win7 Win32 # Microsoft As an example, for Windows 7 the row in the mapping table looks like this: Equinox solves the problem of multiple possible values with a mapping table which is maintained in file org/eclipse/osgi/framework/internal/core/osname.aliases of the bundle. All (currently) known values are listed on this wiki page. What makes things more complicated is the fact that Java might return different values for the same operating system. Its value is compared with the value of the system property .name which is usually filled by the Java VM. The message above actually means that OSGi could not find a matching condition and therefore does not resolve the bundle.Īs a condition, we have here the osname property. at least one of the conditions must evaluate to true. When OSGi is trying to resolve the bundle, it is searching for a library whose condition is fulfilled, i.e. This does not however, work on Windows 8. The expected behavior on any Windows version is that OSGi would try to load the helper.dll. ![]() According to the OSGi specification, we used the Bundle-NativeCode header in the MANIFEST.MF: OSGi defines a way to declare those dependencies, and makes sure that the right library is loaded, depending on the current operating system. There are different native libraries for different operating systems. The problematic bundle references native libraries. !MESSAGE Missing host Bundle-NativeCode_0.0.0. On Windows 8 however, the application does not start because one bundle is not resolved and results in the following error message: On older Windows versions, our Eclipse RCP/RAP application works fine. This post describes the problem and possible solutions. However it can be problem if you use native code in your Eclipse plug-in and run on an older version of Equinox (3.7.2 and earlier). Reading the title, you might ask why this could be a problem. ![]()
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |