# Inkompatibilität meiner RCP Anwendung zwischen JAVA 1.5 & JAVA6



## SaSa83 (8. Apr 2009)

Hallo, 

ich bin neu hier und habe gleich mal eine Frage. 
Ich habe ein Plugin, das nur ein Satz von JARs enthält (com.xyz.lib) 
Und ein Plugin, dass eine Eclipse RCP Anwendung enthält (com.xyz.core) und das com.xyz.lib nutzt. 

Nun zu meinem Problem. 
Meine Eclipse RCP Anwendung soll ab JAVA 1.5 (Vorgabe vom Chef) funktionieren. Da JAVA 1.5 jedoch die Stax API noch nicht hat habe ich ich eine JAR eingebunden (im lib projekt), welche die Klassen javax.xml.stream.* enthält. 

Soweit so gut. Wenn ich nun jedoch meine Applikation unter JAVA 1.6 ausführe tritt ein LinkageError auf. Natürlich: Weil die Klasse die das Eclipse Framework laden will (die aus dem JRE6) nicht identisch mit der Klasse aus meiner JAR ist: 



> loader constraint violation: when resolving method "com.ctc.wstx.stax.WstxOutputFactory.createXMLStreamWriter(Ljava/io/OutputStream;Ljava/lang/StringLjavax/xml/stream/XMLStreamWriter;" the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the current class, com/stegmannsystems/aps/desktop/singlemedia/ImageMetadataIO, and the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for resolved class, com/ctc/wstx/stax/WstxOutputFactory, have different Class objects for the type javax/xml/stream/XMLStreamWriter used in the signature




Ich habe gehört es soll irgendwie möglich sein JARs nur unter bestimmten Bedingungen einzubinden (zB JAVA Version < 6). 
Weiß hier jemand wie das geht? Ich google schon seit 3 Stunden ohne eine Lösung zu finden. 

Das soll man irgendwie mit Features machen können, welche nur unter bestimmten Vorraussetzungen mit geladen werden. Mehr weiß ich leider nicht.


----------



## foobar (8. Apr 2009)

Ja, du könntest dir ein Feature für Java 1.5 und eins für 1.6 machen. In dem Feature kannste unterschiedliche Bundles zur Verfügung stellen.
Wenn du nicht direkt ein Bundle als Abhängigkeit angeben willst, kannste auch einfach die Klassen importieren.


----------



## Wildcard (8. Apr 2009)

Ich würde ein PlugIn Fragment empfehlen in das du die Bibliothek packst und das Fragment schreibt eine konkrete Java Version vor.


----------

