Jak pisze dam1en, wirtualna maszyna Java musi miec bytecode ktory ma wykonac - niemozliwe jest wykonac kod ktorego sie nie zna, prawda?
W RMI robi sie to tak, ze tworzysz interfejs Plik, ktory ma jakiestam metody. Interfejs plik dajesz i klientowi, i musi byc w classpath, i serwerowi. Serwer dostarcza implementacje, np PlikImpl. Na serwerze (moze byc to jednak inny serwer) ustawia sie pomocniczy serwerek, np serwer http (w tutorialu suna do RMI jest malutki serwerek http do sciagniecia), i ustawia sie codebase na adres tego serwerka (moze byc localhost, ale moze byc co innego). Tam znajduje sie implementacja PlikImpl, badz w jarze badz osobno, w strukturze katalogow odpowiadajacej pakietom.
Teraz, klient pobiera namiastke dla obiektu na serwerze, i ta namiastka zwraca obiekty typu Plik (czyli interfejsu, moze byc rowniez tak jak u Ciebie, ArrayList<Plik>, niewazne). Uruchamiajac klienta RMI ustawiasz codebase na mniej wiecej to samo co na serwerze RMI (np serer mial codebase http://localhost:8080, to klienta moze miec localhost:8080 jesli uruchamiasz oba na tej samej maszynie, albo miec np 192.168.1.17 jesli to inny komp w danej sieci, lub http://host:80, jesli to jest maszyna daleko het het w internecie, np w drugim pokoju, i ma byc dostepna dla kazdego). System RMI widzac ze sciagnela ArrayLista obiektow PlikImpl (wie to bo nazwa klasy jest serializowana jakostam), i probuje jej szukac lokalnie - nie znajduje, wiec probuje sciagnac ja z codebase ktore ustawiles. Uzywajac np URLClassLoader sciaga jara / klase na lokala, i ja wczytuje i odpala jej bytecode. Voila, dziala.
Odsylam do tutoriala sunowego, tam jest ladnie opisany przyklad, przy czym tam i serwer i klient RMI maja swoje serwery z implementacjami klas. Zauwazyc nalezy rowniez, ze kod ktory jest sciagany z neta musi miec ograniczenia co do tego co moze robic, a wiec aplikacja ktora sciaga kod musi miec ustawiony RMISecurityManagera (zdaje sie ze domyslnie mozna robic to co moze aplet, czyli np nie mozna czytac plikow na lokalnym dysku), i ewentualnie pododawac do niego uprawnienia.
Pozdro.