`

Eclipse插件引入jar包的方法

    博客分类:
  • SWT
 
阅读更多

搞了两天,终于找到解决办法了。原来 Eclipse 插件项目引入外面的jar包不能用 build path---->add external jars的方法。

 

 

先说明两个概念:类加载器,OSGI

类加载器(class loader),顾名思义就是JVM用于加载类的一个工具。当然,它本身也是一个java类,见java.lang.ClassLoader。它维护内部的类名空间,相互关系(域),并为它们隔绝外部侵害。

OSGI,Open Service Gateway Initiative,则是一个开放的架构,主要特性包括热插拔,bundle独立等。现版本的eclipse就是基于这个架构实现的,而eclipse实现OSGI主要途径,就是通过为每个bundle分配一个独立的classloader,然后使用MANIFEST.MF文件的配置,来维护这些bundle之间的关系。

 

比如一行代码:

Platform.getBundle(BUNDLE_ID)

这就是获得BUNDLE_ID的classloader的途径,通过它来调用bundle(插件)里面的类的方式和反射调用的方式一致。

 

正题:

如何在一个插件里引用jar包?有一些新学eclipse插件开发的朋友,往往会把需要用到的jar包添加到项目的运行环境里面,这种做法虽然在eclipse编辑器编辑的时候不会出现问题,但一旦运行程序,就难免出现无法初始化类,或者找不到类的情况。

这就是因为,各bundle间的classloader是独立的,在项目运行时添加的jar包,并没有加载到本bundle的classloader中来,当然就会出现这种错误了。

两种方案解决这个问题(本文使用的是eclipse 3.7):

1、如果一个jar包的使用范围仅在本插件内部,那么可以在MANIFEST.MF中选择runtime签页,找到classpath区域,如图:

 

点击“Add”按钮,弹出如下对话框:

在这里选择你要添加的jar包即可。

注意!add向导里显示的文件、文件夹只有本插件下的内容,所以,你需要创建一个“lib”文件夹,把需要的jar放置在其下(文件夹命名为lib是约定俗成的做法,如非必要,勿标新立异)。

 

2、如果一个jar包需要被多个插件引用,方案1就显得麻烦了。可以采用jar包插件化的方法来实现公用的jar引用。

快捷键ctrl+N创建新"others",选择

 

接下来按提示操作即可,这样就生成了一个jar包插件。在你需要的位置依赖它即可。

-------------------------

3、虽然只列了两点,但其实还是有方式三的。即是结合上两点,首先在classpath中引用jar包,然后在export package中开放这些jar包。然后在需要的插件里依赖前插件,即可。这样配置相对灵活一点。

分享到:
评论

相关推荐

    eclipse查看jar包class文件源码插件,jar包反编译查看工具

    本文将详细介绍如何在Eclipse中使用插件实现这一功能,以及一种名为JD的jar包反编译查看工具。 首先,我们来看一下"Eclipse查看jar包class文件源码插件"。Eclipse中常用的插件有JD-Eclipse和Decompiler。JD-Eclipse...

    eclipse下lombok 插件jar包及安装方法

    首先,我们需要下载Lombok的jar包。Lombok官网提供了最新的版本下载,你可以访问https://projectlombok.org/download 来获取。下载完成后,会得到一个名为`lombok.jar`的文件,这是Lombok的核心库。 接下来,我们将...

    lombok插件eclipse用jar包

    lombok插件eclipse用jar包 1将lombok.jar包复制到myeclipse.ini/eclipse.ini所在文件目录2 打开myeclipse.ini/eclipse.ini,在最后添加以下代码并保存:  -Xbootclasspath/a:lombok.jar -javaagent:lombok.jar

    java项目中去掉多余的jar包(三个Eclipse插件),有操作图示

    三个Eclipse插件可以去掉多余的java项目中jar包,有操作图示。

    jad在eclipse配置查看jar包源码.rar

    本教程将详细介绍如何在Eclipse中配置jad插件,以便查看jar包源码。 首先,jad是Java反汇编器(Java Decompiler)的一种,它可以将已编译的.class文件转换回接近原始的.java源代码形式。jad.exe就是jad的命令行工具...

    eclipse查看jar包源码的工具.zip

    总的来说,jd-eclipse插件是Eclipse中查看jar包源码的重要工具,它极大地提高了开发者对第三方库的理解和使用效率。通过熟练掌握这些操作,你可以在没有源码的情况下深入探索和分析jar包的行为,从而解决各种编程...

    eclipse源码反编译jar包

    标题“eclipse源码反编译jar包”指的是在Eclipse中安装并使用特定的插件来查看.jar文件的源代码。这通常涉及到将反编译工具集成到Eclipse中,以便开发者可以在不离开IDE的情况下查看和理解第三方库的内部工作。描述...

    djUnit的Eclipse插件及需要的jar包[.7z]

    这个压缩包包含了 djUnit 的Eclipse插件及其所需的jar包,方便用户在Eclipse环境中进行 djUnit 测试。 首先,我们来详细了解一下 djUnit。djUnit 提供了一种方式来测试Django应用程序中的模型、视图、模板以及任何...

    eclipse 3.7+maven plug jar

    在压缩包文件名称列表中提到的“myplugins”,很可能包含了M2Eclipse插件的JAR文件和其他相关配置文件,用于在Eclipse 3.7中安装和配置Maven支持。 为了在Eclipse 3.7中集成Maven,你需要按照以下步骤操作: 1. ...

    Axis2 eclipse插件jar包

    标题中的“Axis2 eclipse插件jar包”指的是在Eclipse集成开发环境中用于支持Apache Axis2 Web服务框架的插件。Apache Axis2是一个流行的开源Web服务引擎,它允许开发者轻松地创建、部署和管理Web服务。Eclipse插件的...

    MyEclipse或Eclipse打jar包插件+详细的使用教程

    二、Eclipse打JAR包 1. **准备工程**:与MyEclipse步骤类似,确保Eclipse工程配置正确,所有依赖库都在Build Path中。 2. **使用Export功能**:选择“File” -> “Export” -> “Java” -> “Runnable JAR file”...

    hadoop-eclipse插件各版本合集

    8. **学习资源**:开发者可以通过Apache Hadoop官网、Eclipse插件库以及各种在线教程和社区论坛获取更多关于Hadoop-Eclipse插件的使用方法和最佳实践。 总的来说,Hadoop-Eclipse插件是Hadoop开发者的得力助手,它...

    Eclipse的fatjar插件

    Eclipse的Fatjar插件是开发Java应用程序时非常实用的一个工具,它允许开发者将整个项目,包括所有的依赖库,打包成一个单一的可执行JAR文件,这就是所谓的"fat"或"uber" JAR。这样的JAR文件包含了运行程序所需的所有...

    ibator-eclipse插件1.2.1 包含优化后jar包

    这个插件版本1.2.1包含了优化后的jar包,意味着它在原有的功能基础上进行了性能和用户体验的提升。优化主要体现在两个方面:一是不再生成注释,这有助于减少代码冗余,提高代码的整洁度;二是精简了DAO(Data Access...

    在Eclipse插件项目中引用第三方JAR包 空指针异常解决

    在Eclipse插件项目中引用第三方JAR包并解决空指针异常,是开发者经常会遇到的问题,特别是对于那些使用Eclipse RCP(Rich Client Platform)进行桌面应用开发的程序员。以下将详细介绍这个问题的解决方法以及相关...

    JFinal整合eclipse、myeclipse的插件jar包

    将这个jar包导入到eclipse或者myeclipse的plugins内,重新启动即可使用JFinal插件。

    eclipse中反编译jar包源码

    "eclipse中反编译jar包源码"这个主题涉及到如何在Eclipse集成开发环境中使用特定的插件和工具来查看.jar文件的源代码。 首先,我们来看一下标签"jad",它是Java反编译器JAD的简称。JAD是一款流行的Java字节码到源...

    eclipse直接打开项目jar包

    6. **反编译并导入到Eclipse**: 如果你想在Eclipse中编辑.jar中的代码,可以反编译后创建一个新的Java项目,将反编译出的源代码导入。但请注意,这可能涉及到版权问题,只有在你拥有源代码许可的情况下才应进行。 ...

    专题资料(2021-2022年)eclipse插件安装方法.doc

    【Eclipse插件安装方法详解】 Eclipse是一个广泛使用的开源集成开发环境(IDE),它以其模块化设计而闻名,可以通过安装各种插件来扩展其功能。这篇专题资料主要介绍了两种Eclipse插件的安装方法,适用于2021-2022...

    eclipse兼容高低版本所需的jar包

    Eclipse是一款广泛使用的Java集成开发环境(IDE),在进行Android应用开发时,它扮演着至关重要的角色。...通过以上方法,你应该能够成功地在不同版本的Eclipse之间迁移项目,避免因jar包不兼容而导致的错误。

Global site tag (gtag.js) - Google Analytics