[java] another java.lang.NoClassDefFoundError..

Pagina: 1
Acties:

  • SilentStorm
  • Registratie: November 2000
  • Laatst online: 18-03 14:45
Ik vond in de search al een aantal topics hiermee, maar dezen waren allemaal opgelost door het classpath aan te passen of omdat de gebruiker .class achter de class zette.

Ik heb heb het probleem nu zelfs zover teruggestript, dat als ik alleen maar een lege class (met main)heb, ik nog steeds die foutmelding krijg
code:
1
2
3
4
5
6
7
8
9
10
public class dradenprog
{ public static void main (String[] args)
  { /*if (args[0] != "")
    { int length = Integer.parseInt(args[0]);
    new draden("Draad1",length).start();
    new draden("Draad2",length).start();
    new draden("Draad3",length).start();
    }*/
  }
}

(progje om wat met threads te prutsen zoals je ziet..)

anyway, zodra ik het uitvoer, krijg ik een java.lang.NoClassDefFoundError. Ik heb het geprobeerd met zowel jdk 1.2 als 1.3.1.

classpath (voorzover nodig) staat op

C:\Program Files\JBuilder6\jdk1.3.1\jre\lib\rt.jar;C:\Program Files\JBuilder6\jdk1.3.1\jre\lib\;.
de jdk\bin zit ook in het path. Waar kan het nog meer aan liggen *wanhoop*?

--
kan trouwens pas vanavond reageren. moet nu werken.

Localhost is where the heart is


  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Wat is de preciese error ? Staat er nog iets anders bij (stacktrace) ofzo ??

  • nxt
  • Registratie: November 2001
  • Laatst online: 26-08 13:51

nxt

probeer class-namen met een hoofdletter te laten beginnen
da's wel zo duidelijk

maar om op je vraag te reageren,
je doet in main
new draden(.....

bestaat de class draden ook?? zo niet, dan zal de NoClassDefFoundError daarvan komen,
als deze wel bestaat zal het waarschijnlijk aan je classpath liggen (de compiler/VM can die class dan iig niet vinden)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

new draden staat in commentaar. Dus dat kan het niet zijn.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Heb je de huidige directory (.) wel in je classpath staan?

Verwijderd

Het bovenste gedeelte van de stacktrace wil wel helpen, daar staat toch 9 van de 10 keer welke class die niet kan vinden.
Zoals gesuggereerd, '.' in je CP zetten. En niet te vergeten, elke jar waaruit je classes gebruikt apart in je classpath vermelden, of in je java/jre/lib map gooien.

  • SilentStorm
  • Registratie: November 2000
  • Laatst online: 18-03 14:45
sorry voor wat late reactie. Mijn classpath (stond hierboven ook al, maar wat onduidelijk..)

C:\Program Files\JBuilder6\jdk1.3.1\jre\lib\rt.jar;C:\Program Files\JBuilder6\jdk1.3.1\jre\lib\;.

dus met alle classes (dacht ik) en met de . (op het einde)

Ik werk trouwens op dit moment met jbuilder 3.5 met jdk-1.2.2, (die die zelf al gebruikt in het compileren), maar zowel op deze manier als gewoon vanuit een comandline, krijg ik dezelfde foutmelding.

Ik heb even wat problemen met die stacktrace. Commandline lijkt daar geen commando voor te zijn :?. Ik heb zelf ff een beetje zitten tracen waar het programma langsgaat door de eigen classes, en het moment waarop het eigenlijk misgaat is hier:
code:
1
2
Resource res = ucp.getResource(path, false);
  if (res != null) {

res is dus wel null en dat geeft de foutmelding.

Na een beetje prutsen heb ik de stacktrace in deze jbuilder ook gevonden:

run():202, java.net.URLClassLoader$1,URLClassLoader.java
|>this = {java.net.URLClassLoader$1@33}
doPrivileged():-1,java.security.AccessController,AccessController.java
findClass():191,java.net.URLClassLoader,ClassLoader.java
loadClass():290,java.lang.ClassLoader,ClassLoader.java
loadClass():286,sun.misc.Launcher$AppClassLoader,Launcher.java
loadClass():247,java.lang.ClassLoader,ClassLoader.java

die |> is gewoon een subje van bovenstaande.

Ik zie hier steeds dat de java.net.URLClassLoader wordt gebruikt. Kan het zijn dat hij mijn applicatie aanziet voor een applet?

---

Nog wat in de project config gekeken. Ik heb het gevonden geloof ik: ik had (wat ie trouwens voor gewoon mogelijk had gehouden) Dradenprog (das wel de goede class (ja ik heb er hoofdletter van gemaakt :) )) als main class neergezet. Dat moest natuurlijk draden(das de package).Dradenprog zijn.

Hij geeft nu een arrayIndexOutOfBounds error over die args[0] :? naja.. los ik dan zelf zo wel weer op. iig bedankt voor alle ideeen. Ik maak hier vast wel weer iemand anders blij mee.

Localhost is where the heart is

Pagina: 1