Brandon, JNDI is built into Java, where as JLDAP is an external library. JNDI is actually and abstraction layer for different directory APIs (including DNS, NIS and a few others) where as JLDAP is an LDAP specific API (though it does support some web services as well). I personally feel JLDAP is simpler then JNDI.
LDAP is a protocol, with OpenLDAP being a "database" that implements that protocol and uses it to communicate with clients. This being the case, both libraries can communicate with either OpenLDAP or any other LDAPv3 server (though as Kurt says, anything non-standard will cause your mileage to vary). Additionally, there are APIs out there to simplify both JNDI and JLDAP. One of them is the JDBC-LDAP bridge (also an OpenLDAP project) which lets you work with LDAP servers using SQL. It ultimatly depends on what type of application you are writing. Marc
