# eclipse umstellung



## Gast2 (12. Dez 2008)

Hallo zusammen,

ich habe meine target platfrom auf 3.3.1 umstellen können. Wenn ich jetzt meine Applikation exportiere und ausführe legt mir eclipse einen configuration/org.eclipse.osgi/bundles ordner an. Weiß jemand was dieser Ordner ganz genau macht? Da legt er mit irgendwelchen Zahlen meine thirdparty lib und noch dei swt.dll usw.
Das Problem ist ich hab auch eine dll die aber noch von einer anderen datei abhängt. Die dll kopiert er mir in einen ordner, die andere datei leider nicht und darum funktioniert es nicht. 
Bei eclipse 3.2.2 war der vorgang nichts so =(... Weiß jemand was ich dagegen machen muss???

Gruß...


EDIT: Wenn ich die Datei in den Ordner(configuration\org.eclipse.osgi\bundles\6\1\.cp) wo meine dll von hand rein kopiert funktioniert alles einwandfrei...


----------



## foobar (12. Dez 2008)

OSGI legt in dem Ordner alle nativen Libs und alle eingebetteten Jars (Jars aus Jars) ab.
Du hast bestimmt deine nativen Libs nicht korrekt in dein Plugin eingebunden.


----------



## Gast2 (12. Dez 2008)

ok...das eine ist keine dll...
also ich hab eine dll und neben ihr muss noch ein anderes file liegen... muss ich das dann über System.load auch laden ???Oder wie mach ich das am besten??? Das andere ist ein md3 file...

wie lad ich meine dll am besten????

```
System.loadLibrary("NikonDll");
  
    // oder

    System.loadLibrary(Activator.getDefault().getBundle().getEntry("NikonDll").getFile());
```

die dll liegt in meinem jar...

EDIT: Also wie bekomm ich es hin dass die dll und das md3  file im gleichen ordner landen??


----------



## foobar (12. Dez 2008)

Zuerst mußt du mal dafür sorgen, daß die LIb und das md3 File korrekt deployed werden. Dafür mußt du OSGI erstmal sagen wo deine native libs liegen. 
Für rxtx habe ich vor kurzem ein Bundle gebaut dessen Manifest so aussieht:


```
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Lib Plug-in
Bundle-SymbolicName: org.rxtx.lib;singleton:=true
Bundle-Version: 2.1.7
Bundle-ClassPath: RXTXcomm.jar
Export-Package: gnu.io
Bundle-ActivationPolicy: lazy
Bundle-NativeCode: 
 nativelib/Linux/i686-unknown-linux-gnu/librxtxParallel.so;
 nativelib/Linux/i686-unknown-linux-gnu/librxtxSerial.so;
 osname=Linux; processor=x86,
 
 nativelib/Linux/ia64-unknown-linux-gnu/librxtxSerial.so;
 osname=Linux; processor=ia64,
 
 nativelib/Linux/x86_64-unknown-linux-gnu/librxtxSerial.so;
 osname=Linux; processor=x86-64,
 
  
 nativelib/Mac_OS_X/librxtxSerial.jnilib;
 osname=Mac OS X; processor=x86; processor=PowerPC,
 
 
 nativelib/Solaris/sparc-solaris/sparc32-sun-solaris2.8/librxtxSerial-2.1-7.so;
 nativelib/Solaris/sparc-solaris/sparc32-sun-solaris2.8/librxtxSerial.so;
 osname=Solaris; processor=Sparc,
 
 nativelib/Solaris/sparc-solaris/sparc64-sun-solaris2.8/librxtxSerial-2.1-7.so;
 nativelib/Solaris/sparc-solaris/sparc64-sun-solaris2.8/librxtxSerial.so;
 osname=Solaris; processor=Sparc64,
 
 
 nativelib/Windows/i368-mingw32/rxtxParallel.dll;
 nativelib/Windows/i368-mingw32/rxtxSerial.dll;
 osname=Win32; processor=x86
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
```


----------



## Gast2 (12. Dez 2008)

Also wenn ich dein Vorschlag richtig verstehe soll ich die in mein thirdparty plugin reinmachen???Oder in nochmal ein extra plugin???

Zur Zeit liegen sie einfach im hauptverzeichniss neben dem plugin.xml...
und in meinem manifest steht folgendes

```
Bundle-NativeCode: NikonDll.dll; BizerbaDll.dll; NkdPTP.dll; Type0001.md3; osname=win32; processor=x86
```


----------



## foobar (12. Dez 2008)

Ja, die gehören ins Thirdparty Plugin. 

Dein Manifest sieht korrekt aus. Ich würde davon ausgehen, daß auch das Type0001.md3 ins native lib dir kopiert wird.


----------



## Gast2 (12. Dez 2008)

ok dann hau ich die später mal ins thirdparty plugin....

aber meine frage noch wie lad ich die md3 datei dann ganz normal über System.load????


```
static
{
System.loadLibrary("NikonDll.dll"); 
System.loadLibrary("Type1000.md3"); 
}
```

des klappt nicht =(...

Edit: Hängen deine dll von einander ab???


----------



## foobar (12. Dez 2008)

Vielleicht hilft das http://www.tutorials.de/forum/java/257307-osgi-native-dlls.html


----------



## Gast2 (12. Dez 2008)

danke das hat geholfen =)


----------

