Avatar billede z_master Nybegynder
15. januar 2003 - 15:38 Der er 21 kommentarer og
1 løsning

Problemer med RMI og Computeropsætning

Jeg har nogle problemer med at lave en stub af mit RMI program. Jeg skyder på at det er et opsætnings problem, da jeg sagtens kan køre en rmic på en anden computer.
Jeg har ikke lyst til at skulle overføre mine source filer over til den anden computer, så det er ikke en løsning.

Jeg bruger JDK1.4.1 og jeg har sat min  CLASSPATH = c:\progra~1\jdk1.4;.
Og i min path er der et link til c:\progra~1\jdk1.4\bin

Når jeg skriver :
rmic -d . DTUsat.GSS.FlybyServer.FlybyServer

Så får jeg fejl meddelsen :
Exception in thread "main" java.lang.InternalError: Unexpected exception while defining class DTUsat.GSS.FlybyServer.FlybyServer: java.lang.ClassNotFoundException: java.rmi.server.UnicastRemoteObject

Det skal siges at DTUsat ligger i det bibliotek, som jeg skriver rmic i og at alle class filer jeg skal bruge også ligger i de biblioteker som de skal ligge i.
Avatar billede arne_v Ekspert
15. januar 2003 - 15:48 #1
Prøv og lad være med at definere CLASSPATH.
Avatar billede laplands-ugle Nybegynder
15. januar 2003 - 15:48 #2
prøv at skrive det her når du står i biblioteket hvor du rmi compiler "set classpath =."

Ellers gør det på den hårde måde og gå ind i miljøvariablerne og sæt hele stien ned til biblioteket med class filerne ind i CLASSPATH.

Du må ikke spørge mig om hvorfor det er nødvendigt at classpath henviser til filerne, men det er det nogle gange?
Avatar billede laplands-ugle Nybegynder
15. januar 2003 - 15:49 #3
Hehe skummelt arne vi svarede PRÆCIS samtidig ;)
Avatar billede arne_v Ekspert
15. januar 2003 - 15:50 #4
Hvis du skal bruge noget classpath med RMIC bruger du bare:

rmic -classpath whatever <resten af options>
Avatar billede arne_v Ekspert
15. januar 2003 - 15:51 #5
Hov. Jeg kan lige se, at du bruger pakke.

Det er skyld i problemet.

Hvis du har projekt rod i C:\proj, så skal FlybyServer.java
og FlybyServer.class ligge i C:\proj\DTUsat\GSS\FlybyServer !
Avatar billede arne_v Ekspert
15. januar 2003 - 15:52 #6
Og så stiller du dig i C:\proj og bruger

rmic -classpath . -d . DTUsat.GSS.FlybyServer.FlybyServer
Avatar billede laplands-ugle Nybegynder
15. januar 2003 - 15:57 #7
jeps det er classpath der skal pege derhen... smart at man kan smide det ind som parameter til rmic, der blev jeg da det klogere ;)
Avatar billede z_master Nybegynder
15. januar 2003 - 15:59 #8
Arne_v : No go. Fjernede classpath og genstartede Prompten. Nogo. Det er XP jeg bruger.

Laplands-Ugle: No go.

Arne_v : Har prøvet den. Den siger stadig at den ikke kan finde UnicastRemoteObject
Avatar billede z_master Nybegynder
15. januar 2003 - 16:02 #9
Arne_v : Mit projekt ligger i de rigtige Packages.
Jeg compiler med
javac -classpath $(src) -d $(class_destination) $(src)DTUsat/GSS/test/TestRMI.java
Hvor jeg så bruger rmic i $(class_destination)
Avatar billede z_master Nybegynder
15. januar 2003 - 16:03 #10
Skal siges jeg bruger en makefile til det, så $(class_destination) er en variabel til et directory. Det virker. Har brugt det i ca. 3 måneder nu.
Avatar billede z_master Nybegynder
15. januar 2003 - 16:04 #11
Og jeg har prøvet "manuelt" ved selv at skrive rmic for at teste det ikke var det.
Avatar billede arne_v Ekspert
15. januar 2003 - 16:12 #12
Du bruger:
  rmic -classpath $(class_destination) pakke.pakke.klasse
?
Avatar billede z_master Nybegynder
15. januar 2003 - 16:13 #13
Ja.. Men den gav fejl, så derfor gik jeg ind i min $(class_destination)(cd $(class_destination)) og skrev "rmic -d . DTUsat.GSS.FlybyServer.FlybyServer.
Samt jeg har skrevet det som I foreslog i en prompt.
Avatar billede z_master Nybegynder
15. januar 2003 - 16:14 #14
Og ja.. Der er kun 1 bibliotek, som hedder DTUsat med alt det tilhørende.
Avatar billede arne_v Ekspert
15. januar 2003 - 16:22 #15
Er UnicastRemoteObject i din rt.jar ?

(ja - nu er vi ved at være lidt langt ude, men ...)
Avatar billede z_master Nybegynder
15. januar 2003 - 16:25 #16
Jeg tjekkede min src.zip, som lå i jdk1.4/
Og ja.. Der ligger Unicast i. Tjekkede selv for at være sikker :P
Avatar billede z_master Nybegynder
15. januar 2003 - 16:26 #17
Jeg har også åbnet jar/zip filen og lagt det i samme bibliotek, som DTUsat.
Og stadig no go.

skrev  rmic -classpath . -d . DTUsat.GSS.FlybyServer.FlybyServer
Avatar billede arne_v Ekspert
15. januar 2003 - 16:31 #18
Hvis den er der så prøv med:

rmic -classpath /dir/jre/lib/rt.jar:$(class_destination) -d . DTUsat.GSS.FlybyServer.FlybyServer

(skulle ikke være nødvendig men ...)
Avatar billede arne_v Ekspert
15. januar 2003 - 16:33 #19
Det er ikek nok at smide en jar i directoriet - den skal eksplicit ind
i classpath.

Men du kan naturligvis bruge:

rmic -classpath rt.jar:$(class_destination)

hvis den ligger i current directory.
Avatar billede z_master Nybegynder
15. januar 2003 - 16:41 #20
Jeg har prøvet begge dele og no go.. Jeg stopper for idag.. Mit hoved gør ondt.. Kan være lidt hvile kan hjælpe. Ellers tak for hjælpen.
Lukker ikke spørgsmålet, hvis I nu kommer på nogle ide'er.
Avatar billede z_master Nybegynder
16. januar 2003 - 10:48 #21
Jeg har oprettet et nyt spørgsmål med det samme indhold, som nu og viderført til dette spørgsmål.
Det nye spørgsmål giver ikke 30 points, men 200 points istedet.
Kan læses her :
http://www.eksperten.dk/spm/305763
Avatar billede z_master Nybegynder
16. januar 2003 - 10:48 #22
Lukket her.. Gå til http://www.eksperten.dk/spm/305763
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