错误情景:java
import sun.net.dns.ResolverConfiguration;spa
import sun.net.util.IPAddressUtil;操作系统
编译器提示Error.net
解决方案:rest
若是你用的是Eclipse dns
在preference->java->complier->errors/warning->deprecated and restricted API把 Forbidden reference 的Error改为warning 便可接口
缘由是:AudiStream 类在 sun.audio.*包下ip
J2SE中的类大体能够划分为如下的各个包:java.*,javax.*,org.*,sun.*开发
除了“sun”包,其它各个包都是Java平台的标准实现,而且从此也将被继续支持。通常说来,“sun”之类的包并不包含在Java平台的标准中,它与操做系统相关,在不一样的操做系统(如Solaris,Windows,Linux,Mac等等)中的实现也各不相同,而且可能随着J2SE版本不按期变化。所以,直接调用“sun”包的程序代码并非100%的Java实现。文档
也就是说:“java.*”包,“javax.*”包,“org.*”包是做为J2SE的API公开接口的一部分,若是程序直接调用这些包中的API,那么程序是能够运行在全部Java平台上,而与操做系统无关;但“sun.*”包并非API公开接口的一部分,调用“sun”包的程序并不能确保工做在全部Java平台上,事实上,这样的程序并不能工做在从此的Java平台上。
正由于如此,“sun.*”包中的类并无提供API文档。平台无关性是Java语言最大的优点之一,此外,SUN和Java许可证确保维持了从此API的向上兼容性(之后修改的那些有严重bug的代码除外)。这种兼容性意味着你写好的程序编译成的cl ass文件仍然能够工做在未来的版本当中。
每家实现Java平台的厂商均可以使用他们本身的方式。“sun.*”包中的类是SUN 对Java平台的实现方式,它们工做在Java 2 SDK的下层,这些类未必被其它Java 平台开发商支持。好比你的Java程序若是调用了一个名为“sun.package.Foo”的类,将有可能产生“ClassNotFoundError”的错误,同时你也将失去利用Java的一个主要的优势。