Announcement

Collapse
No announcement yet.

RMI-Programm ausführen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • RMI-Programm ausführen

    Hallo,
    um ein Remote-Objekt zu implementieren, müsste ich eine Klasse MOTDImpl erstellen, welche eine Unterklasse von java.rmi.server.UnicastRemoteObjekt ist und eine Remote-Methode implementiert .Um das Programm MOTDImpl auszuführen, starte ich zunächst die RMI-Registrierungsdatenbank mit dem MS-DOS Befehl :
    rmiregistry
    dann gebe ich folgenden Befehl ein :
    rmi –d D:\Programmierung\RMI\beispiel MOTDImpl
    ich bekomme immer diese Fehlermeldung: „error : Class MOTDImpl not found”
    obwohl die KLasse MOTDImpl im angegebenen Verzeichnis richtig vorhanden ist .
    Könnte jemand bitte mit RMI Erfahrung mir helfen meine Klasse ausführen zu können, woran könnte der Fehler liegen ? Ich verwende Eclipse 3.2 als Entwicklungsumgebung.
    Im voraus vielen Dank.
    HTML Code:
    import java.io.*;
    import java.rmi.*;
    import java.rmi.server.UnicastRemoteObject;
    
    /** Eine Implementierung des Remote-Interface MOTD */
    public class MOTDImpl extends UnicastRemoteObject implements MOTD {

  • #2
    Originally posted by Lecorniaud View Post
    Hallo,
    um ein Remote-Objekt zu implementieren, müsste ich eine Klasse MOTDImpl erstellen, welche eine Unterklasse von java.rmi.server.UnicastRemoteObjekt ist und eine Remote-Methode implementiert .Um das Programm MOTDImpl auszuführen, starte ich zunächst die RMI-Registrierungsdatenbank mit dem MS-DOS Befehl :
    rmiregistry
    dann gebe ich folgenden Befehl ein :
    rmi –d D:\Programmierung\RMI\beispiel MOTDImpl
    ich bekomme immer diese Fehlermeldung: „error : Class MOTDImpl not found”
    obwohl die KLasse MOTDImpl im angegebenen Verzeichnis richtig vorhanden ist .
    Könnte jemand bitte mit RMI Erfahrung mir helfen meine Klasse ausführen zu können, woran könnte der Fehler liegen ? Ich verwende Eclipse 3.2 als Entwicklungsumgebung.
    Im voraus vielen Dank.
    HTML Code:
    import java.io.*;
    import java.rmi.*;
    import java.rmi.server.UnicastRemoteObject;
    
    /** Eine Implementierung des Remote-Interface MOTD */
    public class MOTDImpl extends UnicastRemoteObject implements MOTD {
    Nicht ganz so einfach zu erkennen aus dieser Perspektive.
    Du schreibst, Du gibst den folgenden Befehl ein:
    rmi –d D:\Programmierung\RMI\beispiel MOTDImpl
    Ich kenne keinen Befehl "rmi". Ich gehe davon aus, dass Du rmic meinst. Bist Du auch im richtigen Pfad? das '-d' spezifiziert ja den AUSGABEPFAD der Klassen. D.h. Dein aktueller Pfad müsste der Pfad sein, indem sich die Klasse "MOTDImpl.java" befindet, bzw der Pfad, indem sich die "MOTDImpl.java" Datei befindet müsste im CLASSPATH sein. Ist das so?

    BTW: Die rmiregistry muss ebenfalls über den CLASSPATH Zugriff auf die kompilierten Klassen haben! Allerdings noch nicht beim kompilieren. Erst zur Laufzeit wird das interessant.

    Ich gehe mal davon aus, dass Du hier ein CLASSPATH-Problem hast

    Comment


    • #3
      Eigentlich sollte ich schreiben rmic –d D:\Programmierung\RMI\beispiel MOTDImpl,es war ein Tippfehler. Das Problem liegt genau in classpath. Ich habe mit folgenden Befehl versucht
      rmic –d D:\Programmierung\RMI\beispiel –classpath D:\Programmierung\RMI\beispiel\MOTDImpl.java MOTDImpl
      Trotzdem kriege ich immer als Fehlermeldung :
      Class MOTDImpl not found.
      Kannst du bitte sagen woran es liegt ? wie soll ich die Klasse MOTDImpl.java in CLASSPATH setzen ?

      Comment


      • #4
        Du scheinst generell noch Probleme mit dem Classpath zu haben. Also wenn Du unter Windows bist, dann gib doch mal folgenden Befehl ein:
        Code:
        set CLASSPATH=%CLASSPATH%;.
        unter Linux solltest Du folgenden Befehl verwenden
        Code:
        export CLASSPATH=$CLASSPATH:.
        jetzt wechselst Du in das Verzeichnis, indem sich Deine java-Dateien befinden und rufst rmic einfach ohne Parameter auf:
        Code:
        rmic MOTDImpl
        Nun sollte das Kompilieren auch ohne Fehler funktionieren

        Gruß

        Comment

        Working...
        X