ERLEDIGT
JA
JA
ANTWORTEN
12
12
ZUGRIFFE
577
577
EMPFEHLEN
-
Hey,
ich arbeite an einem Eclipse Projekt mit GEF und will eine fremde library hinzufügen.
Diese Library liegt in einem anderen Projekt:
Projekt 1: Applikation
Projekt 2: customized externe library
Bisher habe ich es so hinbekommen, dass alles compiliert, also die library zum compilieren hinzugezogen wird. Beim Starten der Applikation wird allerdings eine Exception geworfen:
java.lang.NoClassDefFoundError:
An die build.properties habe ich die .jar schon angehängt,
Ich vermute das Problem an folgender Stelle:
Ich habe die library ausgecheckt aus SVN und dann in eclipse mit import existing projects importiert. Der Name in der workspace unterscheidet sich allerdings mit dem Pfad im Dateisystem.
Kann mir einer sagen, welchen Pfad ich nun nehmen muss um die .jar korrekt in die build.properties einzufügen? Gibt es noch einen anderen Punkt im eclipse projekt wo die Libraries angegeben werden müssen?
Vielen Dank und beste Grüße,
Jens
-
08.01.12 15:28 #2
Hi,
warum kopierst du die Library.jar nicht einfach in einen ./lib Order von deinem Projekt, machst dann einen Rechtsklick auf die Jar-Datei -> Build Path -> Add to Build Path?
Gruß
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Die externe library wird mit einem Ant Script gebaut. Wenn ich was verändere muss ich also immer das Ant script ausführen und dann müsste ich noch zusätzlich die jar kopieren. Das ist keine gute Lösung. Das Ant Script anpassen will ich eignetlich auch ungern (zum einen, weil ich nicht so viel Ahnung davon habe, zum anderen weil ich wenig an dem Projekt der externen library ändern möchte)
Zudem besitzen wir ein extra Projekt indem externe libraries liegen, da viele große libraries dabei sind und sie so nicht in den Branches mit gezogen werden müssen. Also bin ich mir sicher das es irgendwie geht, aber ich scheine einen Punkt zu übersehen, andem ich den Pfad zum .jar hinzufügen muss oder ich benutze den falschen Pfad.
-
08.01.12 15:59 #4
Dann mach einen Rechtsklick im Package Explorer -> Build Path -> Configure Build Path
Dann gehst du in den Reiter Libraries -> Add External JARs... -> suche dein Jar und füge es hinzu
Gruß
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Das habe ich alles schon gemacht. Da es im Workspace ist, reicht auch add jar.
Er erkennt auch die Klassen und merkt mir nichts rot an. Er kompiliert auch und meine Unit-Tests laufen auch. Aber wenn ich die Applikation mit dem Eclipse RCP plugin.xml file starten will, wirft er mir die Exception.
Das bedeutet für mich, dass er zum Bauen die jar nicht benutzt oder?
Wie ändere ich das? Ich denke nicht, dass es über den normalen build-path geht, da es eine Eclipse-Plugin sache ist.
-
08.01.12 16:10 #6
Kannst du vielleicht den kompletten Stacktrace posten?
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Klar, wenn es hilft
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
eclipse.buildId=unknown java.version=1.7.0_02 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE Framework arguments: -product AnimationswerkzeugGEF.product Command-line arguments: -product AnimationswerkzeugGEF.product -data ../runtime-AnimationswerkzeugGEF.product -dev .metadata/.plugins/org.eclipse.pde.core/AnimationswerkzeugGEF.product/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog !ENTRY org.eclipse.equinox.registry 4 1 2012-01-08 15:11:31.919 !MESSAGE Unable to create view ID AnimationswerkzeugGEF.player: Plug-in "AnimationswerkzeugGEF" was unable to instantiate class "main.player.Player". !STACK 0 java.lang.NoClassDefFoundError: com/library/main/Exception at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184) at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905) at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243) at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:260) at org.eclipse.ui.internal.registry.ViewDescriptor.createView(ViewDescriptor.java:63) at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:327) at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:229) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313) at org.eclipse.ui.internal.ViewPane.setVisible(ViewPane.java:534) at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180) at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270) at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65) at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473) at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1245) at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1198) at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1597) at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:643) at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:570) at org.eclipse.ui.internal.PartSashContainer.createControl(PartSashContainer.java:568) at org.eclipse.ui.internal.PerspectiveHelper.activate(PerspectiveHelper.java:272) at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:981) at org.eclipse.ui.internal.WorkbenchPage.onActivate(WorkbenchPage.java:2714) at org.eclipse.ui.internal.WorkbenchWindow$27.run(WorkbenchWindow.java:3023) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchWindow.setActivePage(WorkbenchWindow.java:3004) at org.eclipse.ui.internal.WorkbenchWindow.busyOpenPage(WorkbenchWindow.java:799) at org.eclipse.ui.internal.Workbench$23.runWithException(Workbench.java:1224) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757) at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803) at org.eclipse.ui.internal.Workbench$33.runWithException(Workbench.java:1595) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at main.plugin.Application.start(Application.java:30) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410) at org.eclipse.equinox.launcher.Main.main(Main.java:1386) Caused by: java.lang.ClassNotFoundException: com/library/main/Exception at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(Unknown Source) ... 66 more
Geändert von sheel (08.01.12 um 16:41 Uhr) Grund: Scrollleiste
-
08.01.12 17:32 #8
- Registriert seit
- Jun 2009
- Beiträge
- 870
hast du zufällig noch eine alte (Java SE 6) JRE? probier mal, Eclipse mit dem Parameter -vm in der Eclipse.ini zu starten, siehe auch http://wiki.eclipse.org/Equinox_Laun...Executing_Java .
Ich vermute, dass diese Klasse nicht mit Java7 kompatibel ist. Wenn du eine ältere Version von Eclipse benutzt, solltest du sie wenn möglich aktualisieren (aktuell ist 3.7.1)Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
Ich habe zwar keine zur Hand, aber das würde ich ausschließen, da die library selbst mit Java 7 von mir gebaut ist, dann hätte er schon hier was gemeldet oder?
Ist Java nicht durchgängig abwärtskompatibel?
Beste grüsse, Jens
-
09.01.12 21:52 #10
- Registriert seit
- Jun 2009
- Beiträge
- 870
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
Also ich bin jetzt soweit gekommen, dass es unter Ubuntu und unter MacOSx läuft. Aber Windows 7 wirft mir weiterhin diesen Fehler...
Kann eventuell einer von euch damit nun mehr anfangen?
Beste Grüße,
Jens
-
Hallo,
in meiner RCP, die ich mit dem OSGi-Framework Equinox als SWT-Applikation in e4 baue, passiert ein ähnlicher Fehler. Ich brauche die Packages aus sapjco3.jar, diese werden jedoch nicht erkannt. Bei intensiver Forendurchsuche stieß ich auf den Hinweis, dass bei OSGi der Build Path nicht modifiziert werden sollte. Es hieß: "aus der jar ein Bundle bauen und das über MANIFEST.MF einbinden". Dies habe ich gemacht, habe auch über "Bundle-NativeCode" die sapjco3.dll eingebunden. Dennoch kommt weiterhin der Report
Kann es vielleicht damit zusammenhängen, dass bereits ein anderes Bundle von sapjco Gebrauch macht? Dort steht nämlich in der MANIFEST.MFjava.lang.ClassNotFoundException: com.sap.conn.jco.ext.DestinationDataProvider
Export-Package: my.saphandler;
uses:="javax.swing,
javax.swing.filechooser,
com.sap.conn.jco.ext,
com.sap.conn.jco"
-
Habe es mittlerweile als Plugin converted und dann unter Dependencies als plugin hinzugefügt.
dann musste ich noch die Launch-Configuration anpassen (add required plugins) und dann hat alles gestimmt
Ähnliche Themen
-
Programm funktioniert in Eclipse, als Build nicht...
Von BuddaAtWork im Forum JavaAntworten: 2Letzter Beitrag: 15.09.11, 09:44 -
Build-Eigenschaften in Eclipse
Von Ozzy Ozborn im Forum JavaAntworten: 4Letzter Beitrag: 21.08.09, 22:11 -
Eclipse Build Path Probleme
Von Gast im Forum JavaAntworten: 0Letzter Beitrag: 24.07.09, 11:09 -
Eclipse Plugin Build und Testinfrastruktur generieren mit Pluginbuilder
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 10.06.08, 15:10 -
Eclipse: Build Project?
Von xbtequila im Forum JavaAntworten: 2Letzter Beitrag: 13.05.05, 10:16





Zitieren
Login





