Bibliotheken in Eclipse-Plugin-Projekt verwenden.

H

HobbyProgger

Gast
Ich verwendete in einem normalen Projekt die Bibliotheken TableLayout und Xstream. Jetzt soll ich aus diesem Projekt ein Eclipse-Plugin machen. Nachdem ich in nur 1 Tag das Tutorial durchgegangen bin, hatte ich Probleme, die alte Swing/AWT UI in das Eclipse SWT UI zu integrieren - dies konnte ich aber noch alleine lösen. Nun habe ich allerdings Probleme mit den besagten Bibliotheken!
Ich habe diese wie bei einem normalen Projekt üblich, in den Build Path eingebunden. (die jar-Dateien liegen in einem Unterordner "lib" im Projekt-Verzeichnis). Anschließend wurden zwar im Quelltext an den Stellen, wo die Bibliotheken verwendet wurden, keine Fehler mehr angezeigt - aber beim Ausführen des Plugins erhalte ich immer Fehlermeldungen, dass die Klasse nicht geladen werden konnte.

Den gleichen Fehler erhielt ich übrigens, als ich versuchte, von dem Plugin-Projekt aus, auf das alte Projekt zuzugreifen (altes Projekt wurde dem Build Path hinzugefügt). - Erst, nachdem ich die Klassen des alten Projektes in das Plugin-Projekt kopierte, konnte ich diese einsetzen.

Gibt es hier noch etwas spezielles zu beachten?
 
M

maki

Gast
Gibt es hier noch etwas spezielles zu beachten?
zB. OSGi und dessen Manifest.

Kurz: Du brauchst OSGi Versionen der Libs, kannst du entweder selber erzeugen, oder besser gleich OSGi Versionen runterladen, falls möglich.
Den Build Path kannst du mit OSGi getrost vergessen.
 

Koringar

Bekanntes Mitglied
Hi,

lass mich raten, du hast die Jars in dein Projekt kopiert und im Package Explorer 'Add to Build Path' gemacht. Aber genau das geht bei Eclipse-Plugin nicht einfach so. Du musst es aber über die 'plugin.xml' machen, dort gibt es den Reiter 'Runtime' und dort musste dann unter 'Classpath' die Jars hinzufügen. Erst dann erkennt er die Jars auch.
 

Koringar

Bekanntes Mitglied
Hi,

einfach so eine Projekt zum Classpath hinzu zupacken geht nicht. Du musst dieses Projekt entweder als normale Jar oder eben dann als Bundle verpacken und das kannste dann dem Plugin-Projekt hinzufügen.
 
H

HobbyProgger

Gast
Ok, ich habe jetzt das Projekt so wie es ist komplett als jar exportiert, in das erwähnte lib-Verzeichnis kopiert und unter Classpath hinzugefügt.

Jetzt habe ich eine Klasse (erweitert JPanel), welche -unter Verwendung der Jmol-Bibliothek- einen Atom-Viewer bereit stellt.
Die 1. Zeile im Konstruktor funktioniert noch, aber bei der 2. steigt er aus:
Code:
public class JmolPanel extends JPanel {

	private JmolViewer viewer;
	private JmolAdapter adapter;
    
	public JmolPanel() {
		adapter = new SmarterJmolAdapter();
		viewer = (JmolViewer) JmolViewer.allocateSimpleViewer(this, adapter);
	}
}

Im normalen Java-Projekt gab es damit allerdings keine Probleme - nur im Plugin-Projekt.

Habe ich beim Exportieren etwas falsch gemacht?
 

Wildcard

Top Contributor
Zunächst mal, 'er steigt aus' ist keine Fehlerbeschreibung mit der man etwas anfangen kann.
Du darfst in einem Plugin Projekt niemals den Java Build Path selbst verändern, das übernimmt das PDE Tooling. Du kannst den Classpath beeinflussen über den Manifest Editor:
-Import Package
-Require Bundle
-Extra Classpath Entries
 
H

HobbyProgger

Gast
Ok, der genaue Fehler lautet:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/vecmath/Tuple3f
Ja, ich habe es dem Classpath hinzugefügt, wie du es beschreibst.
 
H

HobbyProgger

Gast
Poste mal dein Manifest. In welcher Bibliothek liegt javax/vecmath/Tuple3f?
Ok, hier ist mein Manifest:
Code:
source.. = src_plugin/
output.. = bin/
bin.includes = plugin.xml,\
               META-INF/,\
               .,\
               icons/,\
               splash.bmp,\
               lib/xstream-1.2.1.jar,\
               lib/TableLayout-bin-jdk1.5-2009-08-26.jar,\
               lib/commons-math-1.1.jar,\
               lib/log4j-1.2.14.jar,\
               lib/JMOL11.jar
Es gibt da eine vecmath1.2-1.14.jar unter jars im Jmol-Projekt-Ordner.
- Kann es sein, dass diese nicht mit in die JMOL.jar exportiert wurden?
 
M

maki

Gast
HobbyProgger, lies dir doch das Tutorial durch, denn so wird das nix, du weisst ja viel zu wenig :)

Du soltest dein Manifest posten, nicht die Build.properties...
 
H

HobbyProgger

Gast
Du soltest dein Manifest posten, nicht die Build.properties...
Parton, ich hatte zwar die MANIFEST.MF ausgewählt, aber dann leider den falschen Reiter erwischt (hatte da nicht so drauf geachtet, weil ich in den letzten Reitern bisher selber nichts geändert hatte).
Code:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: jCellGeo
Bundle-SymbolicName: CellGeoPlugin;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: plugin.Activator
Require-Bundle: org.eclipse.ui,
 org.eclipse.core.runtime
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ClassPath: .,
 lib/xstream-1.2.1.jar,
 lib/TableLayout-bin-jdk1.5-2009-08-26.jar,
 lib/commons-math-1.1.jar,
 lib/log4j-1.2.14.jar,
 lib/JMOL11.jar
PS: das RCP Tutorial bin ich durchgegangen. :)
 
H

HobbyProgger

Gast
Schau ins jar dann weißt du es, aber ich würde vermuten das die Klasse dort wirklich nicht enthalten ist.
Da gibt es einen Ordner jars, welcher nur die vecmath1.2-1.14.tar.gz enthält.

Ansonsten gibt es noch einen Ordner "lib\JMOL11 - Kopie.zip\org\jmol\vecmath", welcher die Datei Point3fi.class einthält.

Wie bekomme ich denn die Bibliothek in die jar-Datei exportiert?
- Eigentlich sollten doch automatisch alle verwendeten Libs eingebunden werden, oder nicht?
 

Wildcard

Top Contributor
Jar in Jar funktioniert nicht (ausser bei OSGi Bundles). Vielleicht solltest du aus JMOL Projekt ebenfalls ein OSGi Bundle machen?
 
H

HobbyProgger

Gast
Jar in Jar funktioniert nicht (ausser bei OSGi Bundles). Vielleicht solltest du aus JMOL Projekt ebenfalls ein OSGi Bundle machen?
Ok, gibt es dabei etwas spezielles zu beachten?

Wäre es auch möglich, die jar-Datei aus diesem Projekt herauszunehmen und direkt dem Class-Path des eigentlichen Projektes hinzuzufügen?
 
H

HobbyProgger

Gast
Wäre es auch möglich, die jar-Datei aus diesem Projekt herauszunehmen und direkt dem Class-Path des eigentlichen Projektes hinzuzufügen?
Ich habe es jetzt genau so gemacht - und es funktioniert! :D

Mir wäre es zwar etwas lieber gewesen, wenn es ohne das explizite Einbinden der Vecmath gegangen wäre... - aber Hauptsache es geht! :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Jar-Bibliotheken Plattformprogrammierung 2
dzim Fragmente für Bibliotheken Plattformprogrammierung 3
E OSGi Eclipse Plug-in programmierung: java.lang.NullPointerException: Cannot enter synchronized block because "profile" is null Plattformprogrammierung 4
R Eclipse Bundles Plattformprogrammierung 2
Robertop RCP Command in bereits bestehendes Eclipse-Menü einbauen Plattformprogrammierung 4
T Java Projekt läuft nur in Eclipse Plattformprogrammierung 6
M Eclipse Plugin PreferencePage BooleanFieldEditor Plattformprogrammierung 1
F OSGi Plugin unter Eclipse arbeitet anders als wenn veröffentlicht Plattformprogrammierung 2
D RCP P2-Repository für Eclipse-Plugins Plattformprogrammierung 0
M Debuging in Eclipse Annotations Processor Plattformprogrammierung 0
D Nach Sprachpaket Installation kann eclipse nicht mehr gestartet werden Plattformprogrammierung 4
L0MiN Wie kann ich ein Klassendiagramm aus Eclipse heraus erstellen? Plattformprogrammierung 5
M Eclipse Probleme beim Ausführen eines Programms Plattformprogrammierung 3
feinperligekohlensaeure Eclipse Workspace gemeinsam Nutzen -> keine .project Datei Plattformprogrammierung 1
F Eclipse Build Path auf benötigte Projekte Plattformprogrammierung 4
B Daten von Eclipse extern sichern Plattformprogrammierung 2
B Eclipse zeigt Fehler nach Java-Update auf 1.8.0_40 Plattformprogrammierung 3
VfL_Freak [Eclipse] Fehleranzeige im Reiter "Problems" Plattformprogrammierung 1
S Errors in workspace bei eclipse Plattformprogrammierung 3
T eclipse bietet keine META-INF an Plattformprogrammierung 1
N Eclipse wo starten Plattformprogrammierung 6
A Eclipse schließt einfach ohne Fehlermeldung Plattformprogrammierung 4
W Eclipse vergißt beim Exportieren Resources-Ordner Plattformprogrammierung 11
A RCP Eclipse e4 und Injection-Contexts Plattformprogrammierung 0
K Eclipse fährt nicht mehr hoch. Metadatendatei schuld? Plattformprogrammierung 7
C [Eclipse RCP E4]InjectionException: no actual value was found for the argument "MDirtyable" Plattformprogrammierung 8
T Eclipse Eigenschaften hinzufügen Plattformprogrammierung 2
M RCP [Eclipse RCP 3.4] ViewTab Kontextmenu "Alle schließen" Plattformprogrammierung 0
D Problem mit eclipse Plattformprogrammierung 2
S Verschieben des Verzeichnis .eclipse aus Userprofile Plattformprogrammierung 3
A RCP Kann kein Eclipse 4 Projekt anlegen Plattformprogrammierung 0
S RCP Exportiertes RCP Produkt lädt Datei nicht, bei Start aus Eclipse wird Datei jedoch gefunden Plattformprogrammierung 6
G Eine Library in Eclipse zur Verfügung stellen Plattformprogrammierung 14
Gregorrr Eclipse RCP Product Build-Nummer + Jenkins Plattformprogrammierung 6
R Einfaches Eclipse-Plugin-Beispiel funktioniert nicht Plattformprogrammierung 5
H OSGi OSGi + Logback + slf4j - Eclipse Run Configuration Plattformprogrammierung 7
C plugin development environment eclipse Plattformprogrammierung 4
R RCP Commands nutzen / org.eclipse.ui.file.save Plattformprogrammierung 7
O Installiere externe Methode "containsNone" in Eclipse Plattformprogrammierung 2
M Keybinding in Eclipse Plugin Plattformprogrammierung 3
TheWhiteShadow RCP Konstrukt für Editor in Eclipse gesucht. Plattformprogrammierung 3
B Eclipse Probleme mit build Plattformprogrammierung 8
H Keine Hilfe/API mehr in Eclipse Juno? Plattformprogrammierung 4
B Neue SuppressWarning in Eclipse Juno Plattformprogrammierung 6
B Eclipse Property Page Plattformprogrammierung 6
B Eclipse PreferencePage Plattformprogrammierung 3
B Eclipse Plugin Einstellungsleiste Plattformprogrammierung 2
B Birt-Previewer über Eclipse Plattformprogrammierung 14
J Eclipse Plug-In für UML-Diagramme Problem Plattformprogrammierung 4
O Eclipse Plugin - Einfachstes Problem, das es gibt. Plattformprogrammierung 2
R Eclipse RCP Tabellen-View (Anfängerfrage) Plattformprogrammierung 3
C Eclipse: Notification beim umbennen von Methoden? Plattformprogrammierung 4
schalentier Eclipse Sourcecode Plattformprogrammierung 4
A Eclipse undo/redo button reagiert nicht auf Änderungen in der OperationHistory Plattformprogrammierung 5
P Eclipse M2_REPO (NON MODIFIABLE) Plattformprogrammierung 8
B Eclipse: Contextmenu id erhalten? Plattformprogrammierung 9
H Datei in eclipse wird nicht erkannt Plattformprogrammierung 3
O Neues Tastenkürzel für Eclipse Editorfenster registrieren Plattformprogrammierung 2
3 Eclipse Editor Plugin selektiert Projekt nicht Plattformprogrammierung 10
Madlip RCP eclipse.ui.bindings (Key-Problematik) Plattformprogrammierung 2
S Eclipse vs. JavaMail vs. Ubuntu vs. Windows Plattformprogrammierung 3
M eclipse führt applikationen nicht mehr aus Plattformprogrammierung 6
S Eclipse: Auf CTRL-C/CTRL-V im Package Explorer? Plattformprogrammierung 4
M Eclipse und Hilfen Plattformprogrammierung 5
G Eclipse buggt rum!!! Plattformprogrammierung 4
B Eclipse RCP und Java 7 Plattformprogrammierung 7
G RCP Eclipse Editor + Guice Plattformprogrammierung 8
T RCP Eclipse RCP: Wo/wann im Plugin ist workbench initialisiert? Plattformprogrammierung 14
G Eclipse Plug-in: wie refreshe ich eine combobox? Plattformprogrammierung 4
M Eclipse Plug-in: Wie eine Grafik einfügen? Plattformprogrammierung 20
M RCP [Eclipse RCP] Feature Export und "Fehler"... Plattformprogrammierung 3
P Eclipse speichert keine Änderungen Plattformprogrammierung 5
M Eclipse - Dokumentation nicht über das Internet benutzen Plattformprogrammierung 3
C Eclipse Plugin NoClassDefFoundError Plattformprogrammierung 4
E org.eclipse.ui.dialogs.ListSelectionDialog erzeugt ClassNotFoundException zur Laufzeit Plattformprogrammierung 4
M Eclipse Plugin Entwicklung - NoClassDefFoundError Plattformprogrammierung 10
C RCP Verständnisfrage Eclipse/Equinox Plattformprogrammierung 4
D eclipse-RCP von der Konsole baut nicht Plattformprogrammierung 3
L RCP Eclipse Popupmenu im PackageExplorer erweitern? Plattformprogrammierung 7
C Eclipse Plugin Entwicklung: Editor für Flussdiagramme Plattformprogrammierung 6
S (OSGI - EQUINOX) Welche Eclipse IDE? Plattformprogrammierung 3
C Pdf in jar datei einbinden mit eclipse Plattformprogrammierung 23
G neuer branch in SVN mit Eclipse Plattformprogrammierung 6
F RCP eclipse rcp ohne eclipse? Plattformprogrammierung 15
dzim RCP Eclipse Provisioning Plattformprogrammierung 3
G RCP Abhängigkeiten von Eclipse Plugins Plattformprogrammierung 9
K Eclipse RCP, EMF, Hibernate Problem Plattformprogrammierung 7
B RCP eigenes Eclipse Plugin wird nicht aufgelöst Plattformprogrammierung 7
T Eclipse Helios XMLUnit importieren Plattformprogrammierung 6
R Verwendung pdfbox in Maven-Projekt in Eclipse Plattformprogrammierung 3
lumo RCP wechseln der Font von Eclipse per code Plattformprogrammierung 10
lumo RCP Eclipse internationalisierung Plattformprogrammierung 5
jemandzehage Kurze Fehlernachricht beim starten in Eclipse Plattformprogrammierung 5
A RCP java.lang.ClassNotFoundException: org.eclipse.core.runtime.adaptor.EclipseStarter Plattformprogrammierung 7
P Wie bekomme ich ICompilationUnit aus dem event? bei Eclipse-Plugin Plattformprogrammierung 3
Rudolf External Libs dauerhaft in Eclipse einbinden Plattformprogrammierung 3
G RCP Eclipse UI Forms Plattformprogrammierung 10
musiKk RCP Eclipse: Speichern von Spaltenbreiten Plattformprogrammierung 9
X Datei in einem Eclipse Projekt über Plugin zugreifen Plattformprogrammierung 2
P Eclipse Help: Wie Links zu anderer Hilfeseite setzen ? Plattformprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben