• eclipse常见问题整理


    错误信息:Access restriction: the type * is not accessible due to restriction on required library *.jar

                  Access restriction:The method * is not accessible due to restriction on required library *.jar

    Eclipse环境下,项目中导入某些JAR,使用这些JAR中的某些API。结果出现Access restriction错误

    Access restriction的原因是因为这些JAR默认包含了一系列的代码访问规则(Access Rules),如果代码中引用了这些访问规则所禁止引用类,可能是标记弃用或者其他访问权限问题,那么就会提示这个错误信息。

    一、既然存在访问规则,那么修改访问规则即可。打开项目的Build Path Configuration页面,展开报错的JAR包或者目录,选中Access rules条目,选择右侧的编辑按钮,添加一个访问规则即可。 也可以:

    [Project] -> Properties -> Java Build Path -> Libraries -> Remove JRE System Library

      Add Library -> JRE System Library -> Click OK

    二、网上的另外一种解决方案:Window - preference - Java - Compiler - Errors/Warnings界面的Deprecated and restricted API下。把Forbidden reference (access rules): 的规则由默认的Error改为Warning。

    这种方案是修改整个Eclipse开发环境,将所有禁止访问的引用由原来的Error(默认)修改为Warning。这种规避方式比较粗暴,个人支持第一种方案。

    列编辑快捷键:Alt+Shift+a

    快速导入包:ctrl+shift+o

    可视化插件:http://www.eclipse.org/windowbuilder/download.php

    动态获取当前项目绝对路径:

    1.鼠标选中项目,右击菜单,选择 properties
    2.出来弹出框,选择resource,location 的值就是你想要的项目绝对路径

    Eclipse插件开发 添加第三方引用  NoClassDefFoundError:

    1. 插件引用第三方包(普通的jar包或者类文件,不是插件)。

    a)  开发环境引用配置,在prject -> properties -> Java build path中设置。

    b)  运行环境引用配置,在plugin manifest编辑器的Runtime选项卡下的classpath中添加tset.jar包的引用(在MANIFEST.MF中表现为Bundle-ClassPath: lib/test.jar,如果manifest则在plugin.xml表现为<runtime>节下的引用)

     c)  plugin.xml -> Build -> Binary Bulid 选中对应的第三方jar

    2. 插件B引用插件工程A(非Eclipse插件,而是自己另外一个插件项目中的类)

    a) 首先必须将A中的B需要的类暴露(export)出来,如果有MANIFEST.MF文件,则表现为plugin manifest编辑器中runtime节的exported packages,通过这里添加需要export的包。在manifest.mf文件中是Export-Package: com.bbebfe.plugin.xml文件中在runtime->library-><export name=”com.bbebfe.*”/>

    b)  在B插件工程的plugin manifest编辑器中的dependencies选项卡中添加对A插件的引用(这要求运行对话框中的plugins列表的workspace plugins中必须包含A插件)。

    c)  如果B工程是一个RCP工程,则必须在product编辑器的configuration选项卡中包含A插件工程。

    参考自http://blog.csdn.net/ruyanhai/article/details/2118868

  • 相关阅读:
    Python笔记 —— 使用open打开和操作txt文件
    Python笔记 —— 文件路径
    Python笔记 —— 四种容器(列表,元组,字典,集合)
    C++笔记 —— 异常
    C++笔记 —— map常用方法
    C++笔记 —— 在模板类中重载操作符
    C++笔记 —— vector常用方法
    C++笔记 —— 强制类型转换
    TCP连接三次握手四次挥手
    HashMap中自定义对象key,实现hashcode与equal
  • 原文地址:https://www.cnblogs.com/FlyCat/p/2765281.html
Copyright © 2020-2023  润新知