导入某些特殊Jar包中的类

导入特殊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的一下个版本可能会被删除;又或者这些类本身就存在安全隐患等等问题,请慎重!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值