Я новичок в Java RMI и просто пытаюсь запустить программу "Hello World" (код показан в конце сообщения)
По сути, у меня есть удаленный класс, удаленный интерфейси класс сервера на одном из моих компьютеров и класс клиента на другом компьютере.Я пытаюсь получить "привет" сообщение с сервера с помощью клиента.Проблема в том, что я не могу скомпилировать клиент и запустить его, если у меня нет удаленного интерфейса и заглушки в том же каталоге, где находится клиент, и в то же время я не могу запустить сервер, если у меня нетте, что находятся в том же каталоге, что и сервер.
Я скомпилировал сервер / удаленный класс / интерфейс с помощью javac, а затем с помощью компилятора rmic."Привет!"
Мне интересно, как я мог бы заставить это работать без необходимости иметь все файлы на обоих компьютерах (именно поэтому я хочу распространять его)
Заранее спасибо!
Код:
Удаленный интерфейс:
import java.rmi.*;
//Remote Interface for the "Hello, world!" example.
public interface HelloInterface extends Remote {
public String say() throws RemoteException;
}
Удаленный класс:
import java.rmi.*;
import java.rmi.server.*;
public class Hello extends UnicastRemoteObject implements HelloInterface {
private String message;
public Hello (String msg) throws RemoteException {
message = msg;
}
public String say() throws RemoteException {
return message;
}
}
Клиент: import java.rmi. *;
public class Client
{
public static void main (String[] argv)
{
try
{
HelloInterface hello= (HelloInterface) Naming.lookup(host); //the string representing the host was modified to be posted here
System.out.println (hello.say());
}
catch (Exception e)
{
System.out.println ("Hello Server exception: " + e);
}
}
}
Сервер:
public static void main (String[] argv) {
try {
Naming.rebind ("Hello", new Hello ("Hello, world!"));
System.out.println ("Hello Server is ready.");
} catch (Exception e) {
System.out.println ("Hello Server failed: " + e);
}
}