Avatar billede Slettet bruger
10. juni 2002 - 19:53 Der er 15 kommentarer og
1 løsning

Java

Jeg benytter UltraEdit men har fået et hidtil ukendt problem.
Programmet compilere .java filen udmærket og laver en .class fil.
Men når jeg så vil køre den får jeg følgende besked!

java.lang.NoClassDefFoundError: HelloWorld
Exception in thread "main"

Er der nogen som kender UltraEdit benytter jeg 9.10 samt java 1.4.0_01

Håber på en let løsning ;-)
Avatar billede jakoba Nybegynder
10. juni 2002 - 20:11 #1
Står klassenavner HelloWorld med samme store/små bogstaver allevegne du bruger det?

ligeer klassen HelloWorld i samme fil som din main metode? eller i en separat fil med navnet HelloWorld.java (og er den fil kompileret?)
Avatar billede Slettet bruger
10. juni 2002 - 20:31 #2
HelloWorld er compileret og der er oprettet en .class fil i samme bibliotek. Navnet på denne .class fil er naturligvis identisk med .java filens.
Avatar billede jakoba Nybegynder
10. juni 2002 - 20:43 #3
og navnet på den .class fil er HelloWorld  (samme store/små bogstaver)?
Avatar billede disky Nybegynder
10. juni 2002 - 21:36 #4
du skal skrive:

java -cp . MinKlassesNavn

når du vil starte programmet

'MinKlassesNavn' skal så udskiftes med det din klasse egentligt hedder.
Avatar billede Slettet bruger
10. juni 2002 - 21:37 #5
...det er jo identisk. Ja.
Avatar billede Slettet bruger
10. juni 2002 - 21:45 #6
Hej Disky

...og hvad så??
Nedenstående fremkommer!!??


C:\>java -cp g:\tommy\ruc\ip\HelloWorld
Usage: java [-options] class [args...]
          (to execute a class)
  or  java -jar [-options] jarfile [args...]
          (to execute a jar file)

where options include:
    -hotspot      to select the "hotspot" VM
                  If present, the option to select the VM must be first.
                  The default VM is -hotspot.

    -cp -classpath <directories and zip/jar files separated by ;>
                  set search path for application classes and resources
    -D<name>=<value>
                  set a system property
    -verbose[:class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -showversion  print product version and continue
    -? -help      print this help message
    -X            print help on non-standard options

C:\>
Avatar billede jakoba Nybegynder
10. juni 2002 - 21:57 #7
så bliver det nok:
      java -cp g:\tommy\ruc\ip\ g:\tommy\ruc\ip\HelloWorld
Avatar billede Slettet bruger
10. juni 2002 - 22:21 #8
Det ændre ikke kørslen af programmet...

C:\>java -cp c:\prg\ c:\prg\HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: c:\prg\HelloWorld
Avatar billede cordack Nybegynder
10. juni 2002 - 23:17 #9
hvad indeholder .java filen?
Avatar billede disky Nybegynder
11. juni 2002 - 09:38 #10
Læg mærke til jeg skrev et . efter cp :-)

ret
java -cp g:\tommy\ruc\ip\HelloWorld

til
java -cp . g:\tommy\ruc\ip\HelloWorld

MEGET vigtigt det angiver at classpath er fra current directory

Har du forresten overhovedet en HelloWorld.class fil ?
Avatar billede Slettet bruger
11. juni 2002 - 13:08 #11
Det er lige det. Naturligvis er der en .class fil.
Kompileringen sker upåklageligt.
Men programmet kan ikke udføres!

C:\>java -cp . c:\prg\HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: c:\prg\HelloWorld

Det fremstår som om det er et JVM problem.
Måske en konflikt ml. W2 og java 1.4.1_01 selvom jeg ikke tidligere er løbet ind i dette problem.

C:\>java -cp. c:\prg\HelloWorld
Unrecognized option: -cp.
Could not create the Java virtual machine.

C:\>
Avatar billede disky Nybegynder
11. juni 2002 - 13:56 #12
okay gør følgende i en command prompt, alle linier skal efterfølges af et tryk på return.
Dette forudsætter du har en HelloWorld.class fil liggende i c:\prg\ skuffen.

Forresten hvis din klasse ikke indeholder en main() så virker det slet ikke


c:\
cd prg
java -cp . HelloWorld
Avatar billede Slettet bruger
11. juni 2002 - 14:08 #13
Se se!!

Så kan det udføres. Men hvad er problemet?

C:\>
C:\>cd prg

C:\Prg>java -cp . HelloWorld
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World

C:\Prg>
Avatar billede disky Nybegynder
12. juni 2002 - 16:43 #14
Problemmet var du ikke havde det dir hvor din class fil ligger i med i din classpath.

Du kan sikkert også skrive

java -cp c:\prg\ HelloWorld

Om den sidste \ skal med kan jeg ikke huske.

p.s. Accepter venligst det spørgsmål der hjalp.
Avatar billede Slettet bruger
13. juni 2002 - 07:46 #15
Det kan jeg netop ikke!
Og det er lige netop problemet.

C:\>java -cp c:\prg\HelloWorld\
Error: could not open `C:\j2re1.4.0-rc\lib\i386\jvm.cfg'
Avatar billede disky Nybegynder
13. juni 2002 - 07:53 #16
Mystisk.

p.s. skift den 1.4.0 ud med final release :)
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