Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 8到Java 11:包com.sun.jndi.ldap不可见_Java_Java 8_Ldap_Package_Java 11 - Fatal编程技术网

Java 8到Java 11:包com.sun.jndi.ldap不可见

Java 8到Java 11:包com.sun.jndi.ldap不可见,java,java-8,ldap,package,java-11,Java,Java 8,Ldap,Package,Java 11,在从Java8移动到Java11之后,我得到了错误“package com.sun.jndi.ldap不可见”。但是我需要这个类LdapCtxFactory的包。包是否已移动,或者是否应为Ldap连接使用另一个类 向您致以最诚挚的问候,因为您对类LdapCtxFactory的唯一使用是如下配置设置 env.put(Context.INITIAL_CONTEXT_FACTORY, LdapCtxFactory.class.getName()); 您可以通过将LdapCtxFactory.clas

在从Java8移动到Java11之后,我得到了错误“package com.sun.jndi.ldap不可见”。但是我需要这个类LdapCtxFactory的包。包是否已移动,或者是否应为Ldap连接使用另一个类


向您致以最诚挚的问候,因为您对类LdapCtxFactory的唯一使用是如下配置设置

env.put(Context.INITIAL_CONTEXT_FACTORY, LdapCtxFactory.class.getName());
您可以通过将
LdapCtxFactory.class.getName()
替换为限定名
“com.sun.jndi.ldap.LdapCtxFactory”
,来删除对类的依赖关系

env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");

依赖未记录的/JDK内部类是非常脆弱的。为什么需要直接使用LdapCtxFactory?我将它放在ldap连接的属性中:env.put(Context.INITIAL_Context_FACTORY,LdapCtxFactory.class.getName());如果这是您唯一的用途,为什么不将
LdapCtxFactory.class.getName()
替换为
“com.sun.jndi.ldap.LdapCtxFactory”
?@Holger,为什么不将其添加为答案,以便它可以被接受?@Jaywalker我不确定这是否是OP的解决方案。因为现在已经确认了,我将其转换为答案。