我有一个用maven和jdk 1.8构建的Java项目。一些类在jdk中使用javax.naming。*和javax.xml。*类。 从Java 9开始,这些Javax软件包已从jdk中删除。那么,如何升级项目以使其在Java 9或更高版本上运行?
这是课程,
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依赖项是行不通的。
答案 0 :(得分:1)
这些类尚未删除,请参见JavaDoc中的javax.naming
和javax.xml.namespace
。除非您要构建模块并且忘记将模块 java.xml 和 java.naming 添加为依赖项,否则错误就出在Java之外,这很可能与工具有关。 / p>
为说服自己,请在命令行上使用javac
编译一个简单的类,并观察其工作情况。然后,确保您正在运行recent versions of the involved tools(尤其是构建工具和IDE)。如果是这样,并且错误仍然存在,请通过更详细的错误描述来改善您的问题。