我有一个用maven和jdk 1.8构建的java项目。有些类使用jdk中的javax.naming.*和javax.xml.*类。 从 Java 9 开始,这些 javax 包已从 jdk 中删除。那么如何升级项目以在 java 9 或更高版本上运行?
这是类(class),
import javax.naming.Binding;
import javax.naming.Context;
import javax.naming.Name;
import javax.naming.NameClassPair;
import javax.naming.NameParser;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.NoInitialContextException;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.ModificationItem;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.event.EventContext;
import javax.naming.event.EventDirContext;
import javax.naming.event.NamingListener;
import javax.naming.ldap.Control;
import javax.naming.ldap.ExtendedRequest;
import javax.naming.ldap.ExtendedResponse;
import javax.naming.ldap.LdapContext;
import javax.naming.spi.InitialContextFactory;
import javax.naming.spi.InitialContextFactoryBuilder;
import javax.naming.spi.NamingManager;
import javax.xml.namespace.QName;
我发现了jndi包含 javax.naming.* 类。但我不知道如何包含它们。仅添加为 Maven 依赖项是行不通的。
最佳答案
这些类尚未删除,请参阅 JavaDoc javax.naming
和 javax.xml.namespace
。除非您在构建模块时忘记添加模块 java.xml 和 java.naming 作为依赖项,否则错误就出在 Java 之外,很可能与工具有关。
为了说服自己,请使用 javac
在命令行上编译一个简单的类并观察它的工作情况。然后确保您正在运行 recent versions of the involved tools (特别是构建工具和 IDE)。如果是这种情况并且错误仍然存在,请通过更详细的错误描述来改进您的问题。
关于java - 如何升级 javax.naming.* 和 javax.xml.* 导入以与 java 10 兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52568117/