Avatar billede broegaard Nybegynder
26. februar 2006 - 20:28 Der er 10 kommentarer og
1 løsning

nybegynder problem, Exception in thread "main" java.lang.NoClass

Jeg har lidt problemer med at afvikle java programmer jeg selv har kompileret.
F. eks. har jeg hugget lidt kode fra udvikleren.dk
http://udvikleren.dk/article.php?aid=150&techid=3 :

class FoersteProgram {
  public static void main(String[]args) {
    int tal1 = 4;
    int tal2 = 5;

    // tallene ligges sammen
    int tilsammen = tal1 + tal2;

    // her udskrives processen
    System.out.println("tal1: " + tal1);
    System.out.println("tal2: " + tal2);

    System.out.println("Nu ligges tallene sammen");
    System.out.println("Resultat: " + tilsammen);
  }
}

Som jeg har gemt i filen FoersteProgram.java.

Jeg kompilere filen med komandoen javac FoersteProgram.java
og det går fint det er først når jeg prøver at afvikle programmet at det får galt:

C:\Programmer\Java\jdk1.5.0_06\bin>javac FoersteProgram.java

C:\Programmer\Java\jdk1.5.0_06\bin>java FoersteProgram.class
Exception in thread "main" java.lang.NoClassDefFoundError: FoersteProgram/class

Er der en der please kan fortælle mig hvad jeg gør forkert.
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 20:32 #1
java FoersteProgram

altså uden ".class"
Avatar billede jakoba Nybegynder
26. februar 2006 - 20:34 #2
C:\Programmer\Java\jdk1.5.0_06\bin>javac FoersteProgram.java
skal være
C:\Programmer\Java\jdk1.5.0_06\bin>javac FoersteProgram.class

.java er din kildetekst
.class er det kompilerede program.

PS det ender med noget gevaldigt rod hvis du lægger dine egne filer i bin mappen.
Avatar billede jakoba Nybegynder
26. februar 2006 - 20:35 #3
Doh. erik har ret.
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 20:38 #4
Og Jakob har også ret. Dine filer bør ligge et andet sted, og java og javac skal findes i din PATH
Avatar billede broegaard Nybegynder
26. februar 2006 - 20:41 #5
erikjacobsen:
Hvis jeg ikke skriver .class får jeg samme fejl:
C:\Programmer\Java\jdk1.5.0_06\bin>java FoersteProgram
Exception in thread "main" java.lang.NoClassDefFoundError: FoersteProgram

jakoba:
Det kan jeg ikke forstå for så vil jeg jo kompilere class-filen en gang til og det vil den slet ikke være med til.
Ja, jeg ved godt at det bliver noget rod når de ligger i samme mappe men det er kun midlertidligt ind til at jeg finder ud af at få den til at kompilere
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 21:17 #6
Jamen, det bør virke. Har du sat en CLASSPATH variabel, med et sjovt indhold?  Prøv

  java -cp . FoersteProgram
Avatar billede broegaard Nybegynder
26. februar 2006 - 21:25 #7
Så virker det! Tak.
Hvad skal jeg sætte mit CLASSPATH til for at få det til at virke normalt.
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 21:26 #8
Ofte kan du lade den være tom.
Avatar billede broegaard Nybegynder
26. februar 2006 - 21:35 #9
Jeg fik den til at virke ved sætte classpath til C:\Programmer\Java\jdk1.5.0_06\bin.
Mange tak. Nu virker det. Smider du lige et svar så du kan få dine point.
Avatar billede erikjacobsen Ekspert
26. februar 2006 - 21:44 #10
Jeg samler slet ikke på point, tak.
Avatar billede broegaard Nybegynder
26. februar 2006 - 21:54 #11
Nå så tager jeg dem selv. Endnu en gang tak. Det her problem kunne jeg jo havet siddet med i en uendelighed uden at være kommet et hak længere.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester