如何升级javax.naming.*和javax.xml.*导入以与Java 10兼容 [英] How to upgrade javax.naming.* and javax.xml.* imports to be compatible with java 10
问题描述
我有一个用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依赖项是行不通的.
这些类尚未删除,请参见JavaDoc中的 javax.xml.namespace
.除非您要构建模块并忘记将模块 java.xml 和 java.naming 添加为依赖项,否则错误就出在Java之外,很可能是工具造成的. /p>
为了说服自己,请在命令行上使用javac
编译一个简单的类,并观察其工作情况.然后确保您正在运行的最新版本涉及的工具(尤其是构建工具和IDE).如果是这样,并且错误仍然存在,请通过更详细的错误描述来改善您的问题.
I have a java project built with maven and jdk 1.8. Some classes use javax.naming.* and javax.xml.* classes in the jdk. From Java 9 onwards those javax packages have been removed from the jdk. So how do I upgrade the project to run on java 9 or later?
Here are the classes,
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;
I have found out jndi contains javax.naming.* classes. But I am not sure how to include them. Just adding as a maven dependency does not work.
These classes have not been removed, see the JavaDoc for javax.naming
and javax.xml.namespace
. Unless you are building a module and forgot to add the modules java.xml and java.naming as dependencies, the mistake lies outside of Java, most likely with the tooling.
To convince yourself, compile a simple class on the command line with javac
and watch it work. Then make sure you are running recent versions of the involved tools (particularly build tool and IDE). If that's the case and the error persists, improve your question with a more detailed description of the error.
这篇关于如何升级javax.naming.*和javax.xml.*导入以与Java 10兼容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!