/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
NoClassDefNotFound
Fra : Dcasso


Dato : 17-12-03 09:20

Hej

Sidder med et program som benytter sig af nogle data strukturer fra
forfatteren Mark Weiss.

Når mit program eksekveres i IntelliJ el. Eclipse kører programmet
fint, men når jeg kører det fra dos (java ....), får jeg en fejl som
hedder:
Exception in thread "main" java.lang.NoClassDefFoundError, som pejer
på en af de datastrukturer jeg benytter fra Weiss (har kun strukturen
som en class fil).

Hvordan kan det være at programmet kører fint fra IntelliJ og Eclipse,
mens når jeg aktiverer det fra dos får jeg en ClassDef.

Dertil skal fortælles at den klasse som den klager over, faktisk bare
er et interface.

Mvh
Dennis C

 
 
Kristian Thy (17-12-2003)
Kommentar
Fra : Kristian Thy


Dato : 17-12-03 11:06

Dcasso uttered:
> Når mit program eksekveres i IntelliJ el. Eclipse kører programmet
> fint, men når jeg kører det fra dos (java ....), får jeg en fejl...

Har du sat den rigtige classpath?

\\kristian
--
Wine improves with age. The older I get, the better I like it.

Dcasso (17-12-2003)
Kommentar
Fra : Dcasso


Dato : 17-12-03 11:18

On 17 Dec 2003 10:06:16 GMT, Kristian Thy <thy@it.edu> wrote:

>Dcasso uttered:
>> Når mit program eksekveres i IntelliJ el. Eclipse kører programmet
>> fint, men når jeg kører det fra dos (java ....), får jeg en fejl...
>
>Har du sat den rigtige classpath?
>
>\\kristian

Ja, det vil jeg mene, jeg har nemlig compilet det i dos og det virkede
fint og føler mig derfor sikker på class pathen er korrekt.

Dennis C

Michael Banzon (17-12-2003)
Kommentar
Fra : Michael Banzon


Dato : 17-12-03 11:53

"Dcasso" <ikke@oplyst_pga_spam.dk> skrev...
> Ja, det vil jeg mene, jeg har nemlig compilet det i dos og det virkede
> fint og føler mig derfor sikker på class pathen er korrekt.

Prøv at sende input/output som du giver/får når fejlen opstår...


--
Michael Banzon
http://michael.banzon.dk/
http://southbound.dk/blog/



Dcasso (17-12-2003)
Kommentar
Fra : Dcasso


Dato : 17-12-03 15:55

On Wed, 17 Dec 2003 11:53:23 +0100, "Michael Banzon"
<michael@banzon.dk> wrote:

>"Dcasso" <ikke@oplyst_pga_spam.dk> skrev...
>> Ja, det vil jeg mene, jeg har nemlig compilet det i dos og det virkede
>> fint og føler mig derfor sikker på class pathen er korrekt.
>
>Prøv at sende input/output som du giver/får når fejlen opstår...

java start "c:\class\filer"
-->
Exception in thread "main" java.lang.NoClassDefFoundError:
weiss/nonstandard/PriorityQueue at start.main<start.java:11>

Dennis C

Kristian Thy (17-12-2003)
Kommentar
Fra : Kristian Thy


Dato : 17-12-03 17:05

Dcasso uttered:
> java start "c:\class\filer"
> -->
> Exception in thread "main" java.lang.NoClassDefFoundError:
> weiss/nonstandard/PriorityQueue at start.main<start.java:11>

Og hvad står der sår i linie 11?

\\kristian
--
"Don't eat more than you can lift"
--Miss Piggy

Dcasso (17-12-2003)
Kommentar
Fra : Dcasso


Dato : 17-12-03 17:56

On 17 Dec 2003 16:04:43 GMT, Kristian Thy <thy@it.edu> wrote:

>Dcasso uttered:
>> java start "c:\class\filer"
>> -->
>> Exception in thread "main" java.lang.NoClassDefFoundError:
>> weiss/nonstandard/PriorityQueue at start.main<start.java:11>
>
>Og hvad står der sår i linie 11?
>
>\\kristian

Se det er det sjove :) Den konstruerer en anden klasse, som jeg har
lavet. I denne gennemløbes en række metoder, og på et tidspunkt er der
en af disse metoder der kalder en priorty queue, fra weiss jar-filen.
og går ud fra det er her den fucker op.

Men hvordan kan det gå galt når filerne er kompilerede, og de virker
fint hvis du kører dem fra eks. eclipse eller IntelliJ, mens når man
kører dem fra dos, refererer den til en klasse, som bare er et
interface, og siger denne ikke har en klasse definition?

Dennis C

Michael Banzon (17-12-2003)
Kommentar
Fra : Michael Banzon


Dato : 17-12-03 17:57

"Dcasso" <ikke@oplyst_pga_spam.dk> skrev...
> java start "c:\class\filer"
> -->
> Exception in thread "main" java.lang.NoClassDefFoundError:
> weiss/nonstandard/PriorityQueue at start.main<start.java:11>

Så vidt jeg husker er det fordi at klassen weiss.nonstandard.PriorityQueue
_ikke_ er i din classpath, det er sikkert noget dine udviklingsværktøjer
plejer at ordne for dig...

Det er sikkert en klasse du har liggende i en .jar-fil som automatisk
bliver importeret, tjeck derfor evt. Eclipse eller IntelliJ for at
finde ud af hvordan du selv får fat på den... ;-D


--
Michael Banzon
http://michael.banzon.dk/
http://southbound.dk/blog/



Dcasso (17-12-2003)
Kommentar
Fra : Dcasso


Dato : 17-12-03 18:13

On Wed, 17 Dec 2003 17:56:40 +0100, "Michael Banzon"
<michael@banzon.dk> wrote:

>"Dcasso" <ikke@oplyst_pga_spam.dk> skrev...
>> java start "c:\class\filer"
>> -->
>> Exception in thread "main" java.lang.NoClassDefFoundError:
>> weiss/nonstandard/PriorityQueue at start.main<start.java:11>
>
>Så vidt jeg husker er det fordi at klassen weiss.nonstandard.PriorityQueue
>_ikke_ er i din classpath, det er sikkert noget dine udviklingsværktøjer
>plejer at ordne for dig...
>
>Det er sikkert en klasse du har liggende i en .jar-fil som automatisk
>bliver importeret, tjeck derfor evt. Eclipse eller IntelliJ for at
>finde ud af hvordan du selv får fat på den... ;-D

Ja, jeg regnede også med det var sådan et problem, men jeg valgte
derfor at lægge den både i ext mappen samt lægge den i samme mappe som
mine andre klassefiler, burde den så ikke i det mindste kunne finde
den en af stederne?

Dennis

Anders K. Olsen (17-12-2003)
Kommentar
Fra : Anders K. Olsen


Dato : 17-12-03 19:31

"Dcasso" <ikke@oplyst_pga_spam.dk> wrote in message
news:jk31uv4klco91kkpkaj7vr8uv1qe2vctmf@4ax.com...
> On Wed, 17 Dec 2003 17:56:40 +0100, "Michael Banzon"
> <michael@banzon.dk> wrote:
> >Det er sikkert en klasse du har liggende i en .jar-fil som automatisk
> >bliver importeret, tjeck derfor evt. Eclipse eller IntelliJ for at
> >finde ud af hvordan du selv får fat på den... ;-D
>
> Ja, jeg regnede også med det var sådan et problem, men jeg valgte
> derfor at lægge den både i ext mappen samt lægge den i samme mappe som
> mine andre klassefiler, burde den så ikke i det mindste kunne finde
> den en af stederne?

Er koden i en jar-fil? Så tilføj jar-filen til din CLASSPATH.

Er koden bare i nogle class filer, så sørg for at disse filer er tilføjet
din classpath. Vær dog opmærksom på hvilken package som klasserne befinder
sig i. Du skal have roden af package statementet i din classpath. Hvis
f.eks. du har en klasse med package com.mydomain.package, og filerne ligger
i c:\com\mydomain\package\, så skal c:\ med i din classpath, ikke
c:\com\mydomain\package

/Anders



Maxi (17-12-2003)
Kommentar
Fra : Maxi


Dato : 17-12-03 22:42

Hej Dcasso,
Jeg har selv haft en lignende problem. Mit problem blev løst ved at
compileren også skulle have sourse filen. Det er ikke nok at kopier klassen
det rigtig sted og sætte class path op. I forbindelse med interfase skal
compileren også have sourse filen.

"Dcasso" <ikke@oplyst_pga_spam.dk> wrote in message
news:q640uvklir1nnjgbvsm72129jfhfen45bp@4ax.com...
> Hej
>
> Sidder med et program som benytter sig af nogle data strukturer fra
> forfatteren Mark Weiss.
>
> Når mit program eksekveres i IntelliJ el. Eclipse kører programmet
> fint, men når jeg kører det fra dos (java ....), får jeg en fejl som
> hedder:
> Exception in thread "main" java.lang.NoClassDefFoundError, som pejer
> på en af de datastrukturer jeg benytter fra Weiss (har kun strukturen
> som en class fil).
>
> Hvordan kan det være at programmet kører fint fra IntelliJ og Eclipse,
> mens når jeg aktiverer det fra dos får jeg en ClassDef.
>
> Dertil skal fortælles at den klasse som den klager over, faktisk bare
> er et interface.
>
> Mvh
> Dennis C



Dcasso (17-12-2003)
Kommentar
Fra : Dcasso


Dato : 17-12-03 23:35

On Wed, 17 Dec 2003 22:42:24 +0100, "Maxi" <dilorjaan50@hotmail.com>
wrote:

>Hej Dcasso,
>Jeg har selv haft en lignende problem. Mit problem blev løst ved at
>compileren også skulle have sourse filen. Det er ikke nok at kopier klassen
>det rigtig sted og sætte class path op. I forbindelse med interfase skal
>compileren også have sourse filen.
>

Hej

Har lige testet noget lignende, og set dit svar og du har ret. Det
interessante er dog, det ikke var problemer ved tidspunktet for
compileringen, men kun eksekveringen af selve programmet.

Men har fået det til at virke :) Og tak til alle.

Dennis


Filip Larsen (18-12-2003)
Kommentar
Fra : Filip Larsen


Dato : 18-12-03 00:00

"Maxi" skrev

> Jeg har selv haft en lignende problem. Mit problem blev løst ved at
> compileren også skulle have sourse filen. Det er ikke nok at kopier
klassen
> det rigtig sted og sætte class path op. I forbindelse med interfase
skal
> compileren også have sourse filen.

Det sidste er ikke rigtigt. Med korrekt opsæt classpath behøver man ikke
adgang til kildekoden for biblioteker.

Den løsning du angiver er blot (endnu) et symptom på, at classpath ved
run-time af en eller anden grund ikke inkluderer de nødvendige
biblioteksklasser. Ved at inkluderer kildekoden sammen med din egen kode
bliver klassefilen nemlig (indirekte) placeret i classpath sammen med
resten af din kode.

Følgende sider fra J2SE dokumentationen beskriver classpath (eksempelvis
under Windows):

http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/classpath.html
http://java.sun.com/j2se/1.4.2/docs/tooldocs/findingclasses.html


Mvh,
--
Filip Larsen



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408185
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste