Avatar billede jesperhw Nybegynder
25. juni 2003 - 19:23 Der er 7 kommentarer og
1 løsning

Eksekvering af Java-programmer fra dos-prompt

Hej!

Der er noget galt med mine dos-prompter (og muligvis opsætningen af min pc) når jeg vil afvikle java-programmer. Jeg har prøvet både "command.com" og "cmd.exe" men uden held. (Mit OS: Win XP Pro). Problemet optræder i disse 2 situationer:

1) Jeg kan ikke få rmi-compilet min server-implementering (kaldet ServerImpl.class). Når jeg bruger en dos-prompt og indtaster kommandoen "rmic -v1.2 ServerImpl" for at lave en stub af klassen får jeg denne fejlbesked:

error: Class ServerImpl not found.
1 error

ServerImpl er selvfølgelig blevet kompileret inden (med javac.exe)

2) Jeg kan heller ikke eksekvere et almindeligt Java-program fra min dos-prompt, f.eks. c:\<sti til .class-filen>\java GUIMain.
Denne kommando giver fejlbeskeden:

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

Det tyder altså på at Java .exe-filerne kan findes (rmic.exe og java.exe), men altså ikke .class-filerne.

Når jeg skriver kommandoerne står jeg i CLASS-filernes rigtige mapper, og min JAVA_HOME\bin mappe er lagt på PATH'en.

Er der nogen der har haft samme problem, og evt. løst det?
Avatar billede arne_v Ekspert
25. juni 2003 - 19:33 #1
Prøv med:

rmic -classpath . ServerImpl
java -classpath . GUIMain
Avatar billede arne_v Ekspert
25. juni 2003 - 19:34 #2
Hvis dine klasser er i pakken minpakke og i directory C:\mitprojekt\minpakke
så er det:

rmic -classpath C:\mitprojekt minpakke.ServerImpl
java -classpath C:\mitprojekt minpakke.GUIMain
Avatar billede arne_v Ekspert
25. juni 2003 - 20:02 #3
Og lad os kalde det et svar.
Avatar billede jesperhw Nybegynder
25. juni 2003 - 20:09 #4
Tak for det arne_v, det virker!

Sæt bare et "dummy" svar ind, så får du dine point. Det var åbenbart ikke så svært alligevel - jeg troede det var et specifikt problem for min pc's opsætning. Derfor satte jeg den til 60 point. Men det gør vel ikke noget...
Avatar billede jesperhw Nybegynder
25. juni 2003 - 20:11 #5
Nå, du var hurtigere end mig :^)
Avatar billede arne_v Ekspert
25. juni 2003 - 20:12 #6
:-)
Avatar billede jesperhw Nybegynder
25. juni 2003 - 20:28 #7
arne>

Det giver godt nok ingen point, men ved du hvorfor det er nødvendigt at inkludere -classpath og punktummet i kommandoen? De kommandoer jeg brugte før burde vel også virke, eller hvad?
Avatar billede arne_v Ekspert
25. juni 2003 - 20:34 #8
Java vil meget gerne have at vide hvor den skal søge efter klasser
henne.

Meget ofte er der en global CLASSPATH defineret som indeholder . - og
i de tilfælde er det ikke nødvendigt.

Jeg mener også at der er andre tilfælde, hvor det ikke er nødvendigt.

Men det virker altid med eksplicit angivelse.

Og når man begynder med mere avancerede ting i Java begynder man at bruge
pakker og så vil man altid angive classpath.

Så jeg mener at det er en god vane altid at angive det.
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