tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
12
ZUGRIFFE
577
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Tsa Tsa ist offline Mitglied Silber
    Registriert seit
    Aug 2005
    Beiträge
    97
    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
     

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist gerade online Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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ß

    Fabio
     
    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.

  3. #3
    Tsa Tsa ist offline Mitglied Silber
    Registriert seit
    Aug 2005
    Beiträge
    97
    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.
     

  4. #4
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist gerade online Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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ß

    Fabio
     
    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.

  5. #5
    Tsa Tsa ist offline Mitglied Silber
    Registriert seit
    Aug 2005
    Beiträge
    97
    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.
     

  6. #6
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist gerade online Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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.

  7. #7
    Tsa Tsa ist offline Mitglied Silber
    Registriert seit
    Aug 2005
    Beiträge
    97
    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
     

  8. #8
    genodeftest genodeftest ist offline Mitglied Brillant
    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)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  9. #9
    Tsa Tsa ist offline Mitglied Silber
    Registriert seit
    Aug 2005
    Beiträge
    97
    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
     

  10. #10
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Zitat Zitat von Tsa Beitrag anzeigen
    Ist Java nicht durchgängig abwärtskompatibel?
    Beste grüsse, Jens
    Theoretisch ja, in der Realität jedoch nicht immer.
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  11. #11
    Tsa Tsa ist offline Mitglied Silber
    Registriert seit
    Aug 2005
    Beiträge
    97
    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
     

  12. #12
    HarryXVI HarryXVI ist offline Mitglied Gold
    Registriert seit
    Apr 2008
    Beiträge
    108
    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
    java.lang.ClassNotFoundException: com.sap.conn.jco.ext.DestinationDataProvider
    Kann es vielleicht damit zusammenhängen, dass bereits ein anderes Bundle von sapjco Gebrauch macht? Dort steht nämlich in der MANIFEST.MF
    Export-Package: my.saphandler;
    uses:="javax.swing,
    javax.swing.filechooser,
    com.sap.conn.jco.ext,
    com.sap.conn.jco"
     

  13. #13
    Tsa Tsa ist offline Mitglied Silber
    Registriert seit
    Aug 2005
    Beiträge
    97
    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

  1. Antworten: 2
    Letzter Beitrag: 15.09.11, 09:44
  2. Build-Eigenschaften in Eclipse
    Von Ozzy Ozborn im Forum Java
    Antworten: 4
    Letzter Beitrag: 21.08.09, 22:11
  3. Eclipse Build Path Probleme
    Von Gast im Forum Java
    Antworten: 0
    Letzter Beitrag: 24.07.09, 11:09
  4. Antworten: 0
    Letzter Beitrag: 10.06.08, 15:10
  5. Eclipse: Build Project?
    Von xbtequila im Forum Java
    Antworten: 2
    Letzter Beitrag: 13.05.05, 10:16

Stichworte