Error en java.rmi

Hola, estoy creando un proyecto en java.rmi de un juego multijugador, y estoy teniendo varios problemas.
En mi proyecto tengo todos estos archivos:

  1. Autenticacion.java
  2. AutenticacionImpl.java
  3. Dibujar.java
  4. DibujarImpl.java
  5. Jugador.java
  6. Servidor.java

El Servidor.java es el cerebro del proyecto, primero tengo que ejecutar Servidor.java, y después ejecuto Jugador.java, para que el Servidor.java y Jugador.java, llamen a los métodos de las clases Autenticacion.java etc…

Pero, al ejecutar Servidor.java, aparece este error:
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: BatallaNavalJava.Autenticacion (no security manager: RMI class loader disabled)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:392)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:598)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:844)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:721)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:720)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1570)
at java.rmi/sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:304)
at java.rmi/sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:280)
at java.rmi/sun.rmi.server.UnicastRef.invoke(UnicastRef.java:382)
at java.rmi/sun.rmi.registry.RegistryImpl_Stub.rebind(RegistryImpl_Stub.java:158)
at java.rmi/java.rmi.Naming.rebind(Naming.java:177)
at BatallaNavalJava.Servidor.main(Servidor.java:13)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at jdk.compiler/com.sun.tools.javac.launcher.SourceLauncher.execute(SourceLauncher.java:264)
at jdk.compiler/com.sun.tools.javac.launcher.SourceLauncher.run(SourceLauncher.java:153)
at jdk.compiler/com.sun.tools.javac.launcher.SourceLauncher.main(SourceLauncher.java:78)
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: BatallaNavalJava.Autenticacion (no security manager: RMI class loader disabled)
at java.rmi/sun.rmi.registry.RegistryImpl_Skel.dispatch(RegistryImpl_Skel.java:157)
at java.rmi/sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:470)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:299)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:598)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:844)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:721)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:720)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1570)
Caused by: java.lang.ClassNotFoundException: BatallaNavalJava.Autenticacion (no security manager: RMI class loader disabled)
at java.rmi/sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:562)
at java.rmi/java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:648)
at java.rmi/sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:240)
at java.base/java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1970)
at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1911)
at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2237)
at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1747)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:525)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:483)
at java.rmi/sun.rmi.registry.RegistryImpl_Skel.dispatch(RegistryImpl_Skel.java:154)
… 14 more
Y este es mi código:

package BatallaNavalJava;

import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;

public class Servidor {

public static void main(String[] args) {

    try {
        LocateRegistry.createRegistry(2001);
        AutenticacionImpl obj = new AutenticacionImpl();
        Dibujarimpl obj2 = new Dibujarimpl();
        Naming.rebind("//localhost:2001/Autenticacion", obj);
        Naming.rebind("//localhost:2001/Dibujar", obj2);
        System.out.println("Servidor listo");

    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

He intentado arreglar esto, pero no logré arreglarlo.