LINUX.ORG.RU

История изменений

Исправление hummer, (текущая версия) :

Да никто и не говорит что он был не доступен, он просто не часть языка и не обязательная часть jvm - ты можешь сделать se1.6 совместимую жвм БЕЗ этого класса и никто не в праве тебе после этого сказать что она не 1.6 совместима

Ты снова тупишь. Никто не пытался утверждать, что com.sun.* - это часть стандартного Java API. Однако это так же не закрытая внутренняя часть JRE и её вполне можно использовать, поскольку даже если её выпилят из JRE, из неё сделают отдельную библиотеку, которую ты сможешь использовать. Но в данном случае com.sun.jndi.ldap.LdapCtxFactory просто не стали экспортировать, закрыв внутри соответствующего модуля.

Это из Java 11:

module java.naming {
    requires java.security.sasl;

    exports javax.naming;
    exports javax.naming.directory;
    exports javax.naming.event;
    exports javax.naming.ldap;
    exports javax.naming.spi;

    exports com.sun.jndi.toolkit.ctx to
        jdk.naming.dns;
    exports com.sun.jndi.toolkit.url to
        jdk.naming.dns,
        jdk.naming.rmi;
    exports com.sun.jndi.ldap to
        jdk.naming.ldap;

    uses javax.naming.ldap.StartTlsResponse;
    uses javax.naming.spi.InitialContextFactory;

    provides java.security.Provider with
        sun.security.provider.certpath.ldap.JdkLDAP;
}

Это из Java 16

module java.naming {
    requires java.security.sasl;

    exports javax.naming;
    exports javax.naming.directory;
    exports javax.naming.event;
    exports javax.naming.ldap;
    exports javax.naming.spi;
    exports javax.naming.ldap.spi;

    exports com.sun.jndi.toolkit.ctx to
        jdk.naming.dns;
    exports com.sun.jndi.toolkit.url to
        jdk.naming.dns,
        jdk.naming.rmi;

    uses javax.naming.ldap.StartTlsResponse;
    uses javax.naming.spi.InitialContextFactory;
    uses javax.naming.ldap.spi.LdapDnsProvider;

    provides java.security.Provider with
        sun.security.provider.certpath.ldap.JdkLDAP;
}

Просто exports com.sun.jndi.ldap убрали.

Исходная версия hummer, :

Да никто и не говорит что он был не доступен, он просто не часть языка и не обязательная часть jvm - ты можешь сделать se1.6 совместимую жвм БЕЗ этого класса и никто не в праве тебе после этого сказать что она не 1.6 совместима

Ты снова тупишь. Никто не пытался утверждать, что com.sun.* - это часть стандартного Java API. Однако это так же не закрытая внутренняя часть JRE и её вполне можно использовать, поскольку даже если её выпилят из JRE, из неё сделают отдельную библиотеку, которую ты сможешь использовать. Но в данном случае com.sun.jndi.ldap.LdapCtxFactory просто не стали экспортировав, закрыв внутри соответствующего модуля.

Это из Java 11:

module java.naming {
    requires java.security.sasl;

    exports javax.naming;
    exports javax.naming.directory;
    exports javax.naming.event;
    exports javax.naming.ldap;
    exports javax.naming.spi;

    exports com.sun.jndi.toolkit.ctx to
        jdk.naming.dns;
    exports com.sun.jndi.toolkit.url to
        jdk.naming.dns,
        jdk.naming.rmi;
    exports com.sun.jndi.ldap to
        jdk.naming.ldap;

    uses javax.naming.ldap.StartTlsResponse;
    uses javax.naming.spi.InitialContextFactory;

    provides java.security.Provider with
        sun.security.provider.certpath.ldap.JdkLDAP;
}

Это из Java 16

module java.naming {
    requires java.security.sasl;

    exports javax.naming;
    exports javax.naming.directory;
    exports javax.naming.event;
    exports javax.naming.ldap;
    exports javax.naming.spi;
    exports javax.naming.ldap.spi;

    exports com.sun.jndi.toolkit.ctx to
        jdk.naming.dns;
    exports com.sun.jndi.toolkit.url to
        jdk.naming.dns,
        jdk.naming.rmi;

    uses javax.naming.ldap.StartTlsResponse;
    uses javax.naming.spi.InitialContextFactory;
    uses javax.naming.ldap.spi.LdapDnsProvider;

    provides java.security.Provider with
        sun.security.provider.certpath.ldap.JdkLDAP;
}

Просто exports com.sun.jndi.ldap убрали.