2009-08-04 3 views
5

Ich habe versucht, die Apache VFS-JAR-Datei als Laufzeitabhängigkeit hinzufügen. Auch wenn wirft es die folgenden Fehler:Wie kann ich das externe Jar zur Eclipse RCP-Anwendung hinzufügen?

java.lang.ClassNotFoundException: org.apache.commons.vfs.VFS bei org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal (BundleLoader.java:489) bei org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:405) bei org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:393) bei org.eclipse.osgi .internal.baseadaptor.DefaultClassLoader.loadClass (DefaultClassLoader.java:105) bei java.lang.ClassLoader.loadClass (ClassLoader.java:251) bei java.lang.ClassLoader.loadClassInternal (ClassLoader.java:319) bei file_explorer .View.setInput (View.java:295) at file_explorer.View.initialize (View.java:130)

Wie kann ich dies lösen, danke im Voraus.

Antwort

3

Der beste Weg, um externe Jar in Eclipse RCP-Anwendung zu integrieren, besteht darin, es als Plugin zu verpacken und dann die klassische Plugin-Abhängigkeit zu verwenden.

Erstellen Sie einfach ein neues Plugin, das nur Ihr Jar enthält. Dann fügen Sie auf der Registerkarte "Erstellen" des Manifesteditors Ihr Jar dem Klassenpfad (rechts unten) hinzu und exportieren Sie alle seine Pakete in die gleiche Laufzeittabelle. Stellen Sie außerdem sicher, dass auf der Registerkarte Erstellen die Option jar aktiviert ist.

Nichtsdestotrotz sollten Sie in der Lage sein, das jar in einem gegebenen Plugin-Quellcode zu verwenden, wenn Sie es nur wie oben erwähnt zum Klassenpfad hinzufügen.

Da einige anderen Plugins interessieren sein kann, das VFS Glas und für separtion von Bedenken bei der Verwendung Materie Ich glaube, Sie es in seinem eigenen Plugin wickeln sollten

2

Der einfachste Weg Bündel in einem bestehenden OSGi-Bundle zu finden ist Repository.

http://bundles.osgi.org/Main/Repository 
http://www.springsource.com/repository/app/ 
http://www.eclipse.org/orbit/ 
http://www.knopflerfish.org/repo/index.html 

Spring Repo enthält Apache VFS Bündel

Dann müssen Sie das Bündel auf die Zielplattform hinzufügen (oder kopieren Sie sie einfach auf den dropins Ordner)

Um richtig Bündel in eine installieren neuere Version von Eclipse sollten Sie ein vorhandenes p2-Repository verwenden und das Bundle von p2 repository in Ihre Runtime-Plattform installieren. Es gibt zwei Möglichkeiten: Sie könnten eine bestehende verwenden (wie orbit p2 repo), oder Sie könnten Ihre eigenen mit p2-Publisher wie unter https://docs.sonatype.org/display/TYCHO/How+to+make+existing+OSGi+bundles+consumable+by+Tycho

2

erstellen Wenn Sie die erforderlichen Gläser zu Ihrem Projekt Klassenpfad hinzufügen möchten.Fügen Sie die benötigte Dateien in das Verzeichnis lib in der Projektstruktur. Dann klicken Sie im Projekt auf die Registerkarte 'run time' von plugin.xml und fügen Sie die erforderlichen jars aus dem Verzeichnis lib dem Projektklassenpfad hinzu.

1

Eclipse RCP ist eine OSGi-Umgebung, die das Java-Abhängigkeitsmodell erweitert, so dass Sie nicht einfach eine jar Datei nehmen und hoffen, dass es funktioniert. Um ein externes jar zu verwenden, musst du es zuerst zu einem plugin erstellen, welches p2-maven-plugin helfen kann, du kannst dem Readme-Dokument folgen.

Wenn das Plugin bereit ist, sollten Sie das Plugin installieren und es zu MANIFEST.MF hinzufügen. Dann starte Eclipse neu, damit das Plugin funktioniert.

Ein einfacher Weg, müssen Sie nicht das Plugin installieren, folgen Sie einfach (aber das Glas bauen):

  1. zu plugin.xml gehen ->Runtime Registerkarte;
  2. klicken Sie auf Add im Bereich classpath, dann fügen Sie das Plug-in Classpath;
  3. stellen Sie sicher, es gibt . Pfad im Textbereich, sonst New es.
Verwandte Themen