Java Naming and Directory Interface (JNDI) は、Java プログラミング言語で記述されたアプリケーションに、ネーミングおよびディレクトリ機能を提供します。ほかのネームおよびディレクトリサービスの実装と独立して動作するように設計されています。新しいサービス、展開されつつあるサービス、すでに展開されているサービスなど、さまざまなサービスに対して共通の方法でアクセスすることができます。
JNDI アーキテクチャーは、API (Application Programming Interface) および SPI (Service Provider Interface) で構成されます。この API を使用すると、Java アプリケーションからさまざまなネームおよびディレクトリサービスにアクセスできます。SPI によって、さまざまなネームおよびディレクトリサービスが透過的にプラグインされます。これらのサービスには、JNDI テクノロジの API を使用して Java アプリケーションからアクセスできます。