Java Rmic не работает

Я изучаю RMI для практики из книги в книге после кода, но RMI не работает

package chapter4.printers;

import chapter4.*;
import java.io.*;
import java.rmi.*;
import java.rmi.server.*;

public class NullPrinter extends UnicastRemoteObject implements Printer {

    private PrintWriter log;
    public NullPrinter(OutputStream log) throws RemoteException {
        this.log = new PrintWriter(log);
    }

    @Override
    public boolean printerAvailable() throws RemoteException {
        // TODO Auto-generated method stub
        return true;
    }

    @Override
    public boolean printDocument(DocumentDescription document) throws RemoteException, PrinterException {
        // TODO Auto-generated method stub
        if (null == log) {
            throw new NoLogException();
        }

        if (null == document) {
            throw new NoDocumentException();
        }
        log.println("Printed file");
        log.flush();
        if(log.checkError()) {
            throw new CantWriteToLogException();
        }
        return true;
    }

    private class NoLogException extends PrinterException {
        public NoLogException() {
            super(0, "Null printer failure. No log to record" +
        " print request.");
        }
    }

    private class NoDocumentException extends PrinterException {
        public NoDocumentException() {
            super(0, "Null printer failure. No document receive" +
                    " as part of print request.");
        }
    }

    private class CantWriteToLogException extends PrinterException {
        public CantWriteToLogException() {
            super(0, "Null printer failure. Attempt to record " +
        "print request to log failed.");
        }
    }
}


package chapter4.applications;

import chapter4.printers.*;
import chapter4.*;
import java.io.*;
import java.rmi.*;
import java.rmi.server.*;
public class SimpleServer implements NetworkConstants {
    public static void main(String[] args) {
        try {
            File logFile = new File("serverLogFile");
            OutputStream outputStream = 
                    new FileOutputStream(logFile);
            Printer printer =
                    new NullPrinter(outputStream);

              Naming.rebind(DEFAULT_PRINTER_NAME, printer);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Сообщения:

Предупреждение: создание и использование скелетов и статических заглушек для JRMP не рекомендуется. Скелеты не нужны, а статические заглушки были заменены динамически сгенерированными заглушками. Пользователям рекомендуется перейти от использования rmic для создания скелетов и статических заглушек. См. Документацию для java.rmi.server.UnicastRemoteObject.

ошибка: класс printers.NullPrinter не найден. 1 ошибка

но nullprinter.class есть в папке принтера

введите описание изображения здесь

1 ответ

package chapter4.printers;

Класс принтеров.NullPrinter не найден. 1 ошибка

но nullprinter.class есть в папке принтера

Но это должно быть в chapter4/printersи его имя не printers.NullPrinter, это chapter4.printers.NullPrinter, Что также означает, что вы должны бежать rmic из каталога, содержащего chapter4 каталог:

rmic chapter4.printers.NullPrinter
Другие вопросы по тегам