加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 当它应该在rt.jar中时,我为什么不拥有这个类?

发布时间:2020-12-15 08:44:29 所属栏目:Java 来源:网络整理
导读:所以,我试图在 java中实现LDAP连接……这需要com.sun.jndi.ldap.LdapCtxFactory. Jarfinder显示LdapCtxFactory应该包含在rt.jar中,据我所知,它是java SDK的基础. Eclipse无法找到它(我正在尝试导入它). 我有一个类似于此前的问题,但我通过安装包含它的jar来
所以,我试图在 java中实现LDAP连接……这需要com.sun.jndi.ldap.LdapCtxFactory. Jarfinder显示LdapCtxFactory应该包含在rt.jar中,据我所知,它是java SDK的基础. Eclipse无法找到它(我正在尝试导入它).

我有一个类似于此前的问题,但我通过安装包含它的jar来解决它……..现在我非常困惑,因为它包含的jar是默认的jar?

请注意,这也是Android项目的一部分.这会有所作为吗?

编辑

我正在使用这个包的地方如下:

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL,ldapHost);
env.put(Context.SECURITY_AUTHENTICATION,"simple");
env.put(Context.SECURITY_PRINCIPAL,user + "@" + domain);
env.put(Context.SECURITY_CREDENTIALS,pass);

然后我使用哈希表创建Context:

ctxGC = new InitialLdapContext(env,null);

所以,由于我没有com.sun,我无法在哈希表中提供.我还需要第一线吗?我不完全确定它是什么…

解决方法

Eclipse隐藏了不属于核心Java API的特定于实现的类 its concept of “access rules”.您可以覆盖它,但这样做很危险.例如,我非常强烈地怀疑Sun实现不会在Android设备上提供.

相反,只需创建一个initial context of the right type,并让框架找到正确的实现来备份它:

LdapContext ctx = new InitialLdapContext();
try {
  /* Use the context... */
} finally {
  ctx.close();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读