rmic - class not Found

Evilsadness

Mitglied
Ich habe folgende Klassen:

Interface IMastermind

Java:
package mm;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface IMastermind extends Remote
{
	public String compareCode(String input) throws RemoteException;
	public String createCode()  throws RemoteException;
}

Klasse Mastermind

Java:
package mm;

import java.io.Serializable;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

public class Mastermind extends UnicastRemoteObject implements IMastermind, Serializable {

	protected Mastermind() throws RemoteException {
		super();
	}

	String code;

	private static final long serialVersionUID = -2764884476758802897L;

	public String compareCode(String input) throws UserInputNotValidException {

		int indirekt = 0;
		int direkt = 0;

		if (!checkInput(input)) {
			System.out.println("Client hat falsche Eingabe gemacht.");
			throw new UserInputNotValidException("Der Code muss aus 4 Zahlen bestehen");
		}

		for (int i = 0; i < 4; i++) {
			if (input.charAt(i) == code.charAt(i)) {
				direkt++;
			} else {
				for (int j = 0; j < 4; j++) {
					if (input.charAt(j) == code.charAt(i)
							&& input.charAt(j) != code.charAt(j)) {
						indirekt++;
					}
				}
			}
		}
		String temp = "Richtig gesetzt: " + direkt
				+ "\nRichtig, aber an falscher Stelle: " + indirekt;
		if (code.equals(input)) {
			return null;
		}
		return temp;
	}

	private boolean checkInput(String input) {
		return input.matches("\\d{4}");
	}

	public String createCode() {
		String r = "";
		for (int i = 0; i < 4; i++) {
			r += (int) (Math.random() * 10);
		}
		this.code = r;
		return r;
	}

}

Klasse Server

Java:
package mm;

import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
import java.util.Scanner;

public class Server {
	public static void main(String[] args) throws RemoteException, AlreadyBoundException {
		Mastermind master = new Mastermind();
		String code = master.createCode();

		try {
			Naming.rebind("Master", master);
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		System.out.println("Mastermindobjekt angemeldet");
		System.out.println("Erstellter Code: " + code);

	}
}

Klasse Client

Java:
package mm;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.Registry;

public class Client
{
  public static void main( String[] args ) throws  NotBoundException,RemoteException
  {
    
    IMastermind master = null;
	try {
		master = (IMastermind)Naming.lookup("rmi://192.168.11.22:1099/Master");
	} catch (MalformedURLException e1) {
		// TODO Auto-generated catch block
		e1.printStackTrace();
	}

    
    boolean fertig = false;
	System.out
	.println("Das Spiel beginnt mit einem "
			+ 4
			+ "-stelligen Code (Ziffern 0-9). Bitte geben Sie einen Code ein.");
    while(!fertig){
        try {

			BufferedReader rein = new BufferedReader(new InputStreamReader(
					System.in));
        	String temp;
        	if((temp = master.compareCode(rein.readLine())) != null){
        		System.out.println(temp);
        	}else{
        		fertig = true;
        	}
    	} catch (UserInputNotValidException e) {
    		System.out.println("falschen Code eingegeben!");
    	} catch (IOException e) {
    		System.out.println("falschen Code eingegeben");
		}
    }
    System.out.println("Sie haben den Code erraten!");


  }
}

Klasse Exception

Java:
package mm;

import java.rmi.RemoteException;

class UserInputNotValidException extends RemoteException {
	private static final long serialVersionUID = 1L;

	public UserInputNotValidException() {
	}
	public UserInputNotValidException(String s) {
		super(s);
	}
}

Verzeichnisstruktur ist wie folgt aufgebaut:

RMI - Mastermind - rmic
.......|
.......|
.......bin
.......src
..........|
..........|
..........mm (package)
..............|
..............|
..............alle java datein


übersetze es zunächst einmal mit "javac" im "src" ordner wie folgt:
javac -classpath . mm\IMastermind.java
javac -classpath . mm\Mastermind.java

nun will ich mit rmic den Stub und Skeleton erzeugen

egal ob ich nun in "mm" gehe und
rmic Mastermind
oder
rmic Mastermind.class

oder es aus src versuche:
rmic mm\Mastermind
oder
rmic mm.Mastermind

Immer kommt die Fehlermeldung. "Class Mastermind not found".

Was mach ich falsch? :bahnhof:



Vorher habe ich es mit dynamischen Proxies gemacht, wollte es aber mit rmic versuchen
 
Zuletzt bearbeitet:

Evilsadness

Mitglied
ich weiß, dass dynamische Proxies besser sind, trotzdem finde ich das mal interessant mit rmic zuherum zu experimentieren.
Ich benutze JDK 1.8 ,Kann es vllt. iwie daran liegen? weil es ja Deprecated ist
ich weiß auf jeden Fall nicht wo mein Denkfehler ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B RMI und Problem mit rmic-Tool Netzwerkprogrammierung 3
R RMI Kein "rmiC.exe" vorhanden, lediglich "rmiD.exe" Netzwerkprogrammierung 5
K rmic / rmiregistry in Java 5&6 Netzwerkprogrammierung 4
G Wo ist der rmic ? Netzwerkprogrammierung 7
D wie kann ich rmic ein .jar file übergeben? Netzwerkprogrammierung 3
D rmic/rmiregistry rauben mir den letzten nerv! Netzwerkprogrammierung 12
G RMI & classpath & rmic.exe Netzwerkprogrammierung 21
D Socket Class über Netzwerk verschicken Netzwerkprogrammierung 2
B FTP *.class download Netzwerkprogrammierung 2
D ...class.getResourceAsStream("/meine.properties") funktioniert nicht über RMI? Netzwerkprogrammierung 3
Semox Shell Script in Java Class aufrufen Netzwerkprogrammierung 2
M Class-Datei aus Eclipse mit Xampp Netzwerkprogrammierung 4
Kr0e Serialisieren von Class<?> Netzwerkprogrammierung 2
Saxony RMI - eigene Registry (no security manager: RMI class loader disabled) Netzwerkprogrammierung 6
2 Class mit ServerSocket erbt von Thread? Netzwerkprogrammierung 3
H RMI und class incompatible Netzwerkprogrammierung 11
M Falsche Instanz vom Class Loader zurück bekommen Netzwerkprogrammierung 8
P RMI - meine Stub-Class wird nicht gefunden Netzwerkprogrammierung 9
R "Class not found" trotz gesetztem CLASSPATH Netzwerkprogrammierung 4
Y HTTP No request data found Netzwerkprogrammierung 2
P No trusted certificate found Netzwerkprogrammierung 3
A No trusted certificate found Netzwerkprogrammierung 7

Ähnliche Java Themen

Neue Themen


Oben