The Java Naming and Directory Interface (JNDI) is an application programming interface (API) that provides naming and directory functionality to applications written using the Java programming language. It is defined to be independent of any specific directory service implementation. Thus a variety of directories (new, emerging, and already deployed) can be accessed in a common way. The primary function of a naming system is to bind names to objects (or, in some cases, to references to objects). In order to be a naming service, a service must at the very least provide the ability to bind names to objects and to look up objects by name. The JNDI defines environment properties that are standard across all service providers. Not all standard environment properties are applicable to all service providers. But when a service provider does use one of these properties, it must interpret the property according to the definition specified by the JNDI.

What makes JNDI different from existing naming services?

  • Naming convention: the way each naming service requires names to be specified.
  • Functional differences
  • Abstraction: JNDI provides a workable abstraction.