您的位置:首页 > 其它

导入某些特殊Jar包中的类

2015-11-29 18:26 134 查看
导入特殊jar设置

在通常的开发中可能会去看下API的源代码,自己有时候也可以模仿API中的源代码做一些研究,可是有些特殊jar包中的类报无法导入的错误:

The import sun.misc.ProxyGenerator is never used

- Access restriction: The type 'ProxyGenerator' is not API (restriction on required library 'C:

\Program Files\Java\jdk1.7.0_75\jre\lib\rt.jar'。

例如上述sun.misc中的ProxyGenerator类,为了研究Java动态代理需要用到此类做一些开发工作,下面对网上提供的导入特殊jar的方案和自己的实践做一些总结。

第一种方案,也是最简单的方案:

1、打开项目属性》Java Build Path》选择JRE System Library》remove;

然后再重新添加JRE system library;

2、点击Add library》Next》选择相应的JDK版本(建议与刚开始的一样的版本)》finish。

通过上述操作后,特殊jar导入错误就会消失。

具体操作如下所示:

第二种方案 设置JRE System Library的access rules属性

1、打开项目属性》Java Build Path》选择JRE System Library》点击左边的三角形 打开下拉菜单》双击access rules》打开其属性;

2、点击右边的Add》打开access rules设置》选择resolution为accessible》按照提示在下面的rule pattern输入相应的pattern;

pattern 可以输入** 代表所有的包均可导入 ,也可以输入相应包路径下面的类可以进入访问,例如sun/misc/**等等;

3、所有的选择完成之后一步步OK即可,回到工作空间,红色错误即消失。

具体操作如下所示:

第三种方案 修改Java编译器设置

1、打开Windows 》 点击Preferences 》 选择Java 》打开Compiler ;

2、选择Errors/Warnings 》点开右边的Deprecated and trstricted API选项 》找到 Forbidden reference (access rules) 菜单》将菜单右边的下拉框改变为 warning;

3、最后一步步OK即可。

具体操作如下所示:

总结:

通过上述三种方案均可达到导入特殊包(sun.*、com.sun.*等),访问里面的类;但是这样操作会存在一定的风险,对于以后代码的可以扩展性、通用性、安全性等,因为这些包不是J2SE规范里面声明的类。

也就是说这些类可能在Windows下可用,但到了Linux或者其他平台下不可用;又或者这些类在jdk的一下个版本可能会被删除;又或者这些类本身就存在安全隐患等等问题,请慎重!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: