LocateRegistry (Java SE 26 & JDK 26)
Description: declaration: module: java.rmi, package: java.rmi.registry, class: LocateRegistry
Keywords: java.rmi.registry.LocateRegistry class

# Class LocateRegistry

java.lang.Object
java.rmi.registry.LocateRegistry

public final class LocateRegistry extends Object
`LocateRegistry` is used to obtain a reference to a bootstrap remote object registry on a particular host (including the local host), or to create a remote object registry that accepts calls on a specific port.

Note that a `getRegistry` call does not actually make a connection to the remote host. It simply creates a local reference to the remote registry and will succeed even if no registry is running on the remote host. Therefore, a subsequent method invocation to a remote registry returned as a result of this method may fail.

Since:
  1.1
See Also:
  - `Registry`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static Registry`
  `createRegistry(int port)`
  Creates and exports a `Registry` instance on the local host that accepts requests on the specified `port`.
  `static Registry`
  `createRegistry(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)`
  Creates and exports a `Registry` instance on the local host that uses custom socket factories for communication with that instance.
  `static Registry`
  `getRegistry()`
  Returns a reference to the remote object `Registry` for the local host on the default registry port of 1099.
  `static Registry`
  `getRegistry(int port)`
  Returns a reference to the remote object `Registry` for the local host on the specified `port`.
  `static Registry`
  `getRegistry(String host)`
  Returns a reference to the remote object `Registry` on the specified `host` on the default registry port of 1099.
  `static Registry`
  `getRegistry(String host, int port)`
  Returns a reference to the remote object `Registry` on the specified `host` and `port`.
  `static Registry`
  `getRegistry(String host, int port, RMIClientSocketFactory csf)`
  Returns a locally created remote reference to the remote object `Registry` on the specified `host` and `port`.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Method Details

  - ### getRegistry

    public static Registry getRegistry() throws RemoteException
    Returns a reference to the remote object `Registry` for the local host on the default registry port of 1099.
    Returns:
      reference (a stub) to the remote object registry
    Throws:
      `RemoteException` - if the reference could not be created
    Since:
      1.1

  - ### getRegistry

    public static Registry getRegistry(int port) throws RemoteException
    Returns a reference to the remote object `Registry` for the local host on the specified `port`.
    Parameters:
      `port` - port on which the registry accepts requests
    Returns:
      reference (a stub) to the remote object registry
    Throws:
      `RemoteException` - if the reference could not be created
    Since:
      1.1

  - ### getRegistry

    public static Registry getRegistry(String host) throws RemoteException
    Returns a reference to the remote object `Registry` on the specified `host` on the default registry port of 1099. If `host` is `null`, the local host is used.
    Parameters:
      `host` - host for the remote registry
    Returns:
      reference (a stub) to the remote object registry
    Throws:
      `RemoteException` - if the reference could not be created
    Since:
      1.1

  - ### getRegistry

    public static Registry getRegistry(String host, int port) throws RemoteException
    Returns a reference to the remote object `Registry` on the specified `host` and `port`. If `host` is `null`, the local host is used.
    Parameters:
      `host` - host for the remote registry
      `port` - port on which the registry accepts requests
    Returns:
      reference (a stub) to the remote object registry
    Throws:
      `RemoteException` - if the reference could not be created
    Since:
      1.1

  - ### getRegistry

    public static Registry getRegistry(String host, int port, RMIClientSocketFactory csf) throws RemoteException
    Returns a locally created remote reference to the remote object `Registry` on the specified `host` and `port`. Communication with this remote registry will use the supplied `RMIClientSocketFactory` `csf` to create `Socket` connections to the registry on the remote `host` and `port`.
    Parameters:
      `host` - host for the remote registry
      `port` - port on which the registry accepts requests
      `csf` - client-side `Socket` factory used to make connections to the registry. If `csf` is null, then the default client-side `Socket` factory will be used in the registry stub.
    Returns:
      reference (a stub) to the remote registry
    Throws:
      `RemoteException` - if the reference could not be created
    Since:
      1.2

  - ### createRegistry

    public static Registry createRegistry(int port) throws RemoteException
    Creates and exports a `Registry` instance on the local host that accepts requests on the specified `port`.

    The `Registry` instance is exported as if the static `UnicastRemoteObject.exportObject` method is invoked, passing the `Registry` instance and the specified `port` as arguments, except that the `Registry` instance is exported with a well-known object identifier, an `ObjID` instance constructed with the value `ObjID.REGISTRY_ID`.

    Parameters:
      `port` - the port on which the registry accepts requests
    Returns:
      the registry
    Throws:
      `RemoteException` - if the registry could not be exported
    Since:
      1.1

  - ### createRegistry

    public static Registry createRegistry(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException
    Creates and exports a `Registry` instance on the local host that uses custom socket factories for communication with that instance. The registry that is created listens for incoming requests on the given `port` using a `ServerSocket` created from the supplied `RMIServerSocketFactory`.

    The `Registry` instance is exported as if the static `UnicastRemoteObject.exportObject` method is invoked, passing the `Registry` instance, the specified `port`, the specified `RMIClientSocketFactory`, and the specified `RMIServerSocketFactory` as arguments, except that the `Registry` instance is exported with a well-known object identifier, an `ObjID` instance constructed with the value `ObjID.REGISTRY_ID`.

    Parameters:
      `port` - port on which the registry accepts requests
      `csf` - client-side `Socket` factory used to make connections to the registry
      `ssf` - server-side `ServerSocket` factory used to accept connections to the registry
    Returns:
      the registry
    Throws:
      `RemoteException` - if the registry could not be exported
    Since:
      1.2