Java Fehlermeldung java.lang.NoClassDefFoundError

  • Themenstarter Themenstarter enfinity
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
E

enfinity

Gast
Hi *,

leider bin ich nicht allzu fit in Java, deswegen kann ich mit der unten aufgeführten FM auch wenig anfangen. Zum Hintergrund: Es handelt sich hierbei um ein Programm, dass Daten aus Repository A in Repository B inztegrieren soll. Ich hab es nicht geschrieben, kann also leider nicht viel mehr dazu sagen.

Wenn jemand eine Idee hat, wie ich diesen Fehler beseitigen kann (ohne an den Programmcode zu müssen), dann sagt es mir doch bitte 🙂

Danke,
Ben




*****
FEHLERMELDUNG:
*****

Exception in thread "main" java.lang.NoClassDefFoundError: com/businessobjects/rebean/wi/DataProviders
at com.bobj.mm.integrator.cms.common.CMSCollectorController.initializeRe portCollectors(CMSCollectorController.java:317)
at com.bobj.mm.integrator.cms.common.CMSCollectorController.collectReportMetadata(CMSCollectorController.java:287)
at com.bobj.mm.integrator.cms.common.CMSCollectorController.run(CMSCollectorController.java:166)
at com.acta.crystalrepo.crawler.CrawlerProgramBase.run(CrawlerProgramBase.java:98)
at com.acta.crystalrepo.crawler.CrystalCrawlerMain.getReportMetadata(CrystalCrawlerMain.java:191)
at com.acta.crystalrepo.crawler.CrystalCrawlerMain.main(CrystalCrawlerMain.java:78)
 
Dir fehlt das Jar mit der entsprechenden Klasse. Frag jetzt aber nicht wo du das her bekommst ;-)
 
Ha, ich hab das jar File gefunden. Liegt unter

C:\Programme\Business Objects\common\3.5\java\lib



in der auführenden Batch-Datei werden die Systemvariablen auch richtig gesetzt:

Code:
set DI_DIR=C:\PROGRA~1\BUSINE~1\DATAIN~1.5
set CE_JARS_DIR=C:\PROGRA~1\BUSINE~1\Common\3.5\java\lib
set DI_CRAWLER_DIR=C:\PROGRA~1\BUSINE~1\DATAIN~1.5\ext\cmsCollector

set CLASSPATH=%DI_DIR%\lib\loader.jar
"%JAVA_HOME%\bin\java" -Duser.language=en -Duser.country=US -Djava.system.class.loader=com.bobj.ConfigurableClassLoader -Dclassloader.properties="%DI_CRAWLER_DIR%\classloader.properties" -Did_list=webi -Dlink_dir="%DI_DIR%" -Dboe_dir="%CE_JARS_DIR%" com.acta.crystalrepo.crawler.CrystalCrawlerMain -D"%DI_CRAWLER_DIR%" -C"%NAME%"

:EXIT



Scheint doch eigentlich alles richtig zu sein, oder?
 
DI_DIR zeigt auf Business Objects\Datein..\
CLASSPATH auf DI_DIR

und du wunderst dich, dass Business Objects\common nicht gefunden wird?

funktioniert
set CLASSPATH=%CE_JARS_DIR%\loader.jar ?

-----------

CE_JARS_DIR ist aber auch sonst schon im Aufruf integriert, der klingt ja ziemlich kompliziert, hast du niemanden den du dazu fragen kannst?

-----

drei allgemeine Tipps noch von mir:
1.) gerade wenn die Verzeichnisse so kompliziert sind (~1) versuche vielleicht lieber erstmal alle benötigten Dateien in das Programmverzeichnis zu kopieren oder zumindest in ein einfaches Unterverzeichnis \lib

2.)
wenn Windows, dann benutze doch Windows-Umgebungsvariablen,
da kannst du die Pfade ganz normal reinschreiben

CLASSPATH = .;C:\Programme\Business Objects\common\3.5\java\lib

3.)
Wie soeben schon angedeutet sollte (meiner Erfahrung nach) im Classpath immer der Punkt fürs aktuelle Verzeichnis enthalten sein,
am besten auch den vorherigen CLASSPATH übernehmen wenn man nicht genau weiß was man tut

set CLASSPATH=.;%CLASSPATH%;%DI_DIR%\lib\loader.jar
oder ähnlich,

mit der Gefahr, beim mehrmaligen Ausführen den Classpath immer wieder mit dem gleichen Inhalt zu verlängern 😉
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben