在开发 插件A 与 插件 B 过程中, Plugin A 需要使用到 Plugin B 的某一个类 ClassB, 假设ClassB 位于 Plugin B  的PackageB 中,

那么需要在Plugin B 的manifest.mf 文件中添加:

Export-Package:  PackageB

并在Plugin A 的manifest.mf 文件中添加:

Import-Package:  PackageB

以此声明依赖关系。

分别导出两个插件的Jar包后,拷贝到Eclipse的/plugin 目录下后, 运行Eclipse, 发现两个插件能独立正常运转,但是当PlugA 调用ClassB时,系统报错:

 1 java.lang.NoClassDefFoundError: org/jboss/tools/vpe/browsersim/eclipse/launcher/BrowserSimLauncher
 2     at org.ayound.js.debug.launch.JsLaunchConfigurationDelegate.launch(JsLaunchConfigurationDelegate.java:101)
 3     at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858)
 4     at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707)
 5     at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1018)
 6     at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1222)
 7     at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
 8 Caused by: java.lang.ClassNotFoundException: org.jboss.tools.vpe.browsersim.eclipse.launcher.BrowserSimLauncher cannot be found by org.ayound.js.debug.core_2.2.0
 9     at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
10     at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
11     at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
12     at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
13     at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
14     ... 6 more

PluginA(此例中是org.ayound.js.debug.core_2.2.0)找不到PluginB(此例中是org.jboss.tools.vpe.browsersim.eclipse)的ClassB(BrowserSimLauncher.class)!!

折腾了很久,找到了解决方法:启动eclipse 的时候加“-clean”选项

可以修改eclipse.ini文件 或者 命令行启动, 在windows平台下, 可以找到eclipse.exe, 右键创建快捷方式,再针对所创建的快捷方式图标点击右键 -> 属性 ->目标  一栏"...eclipse.exe" 后面加上"-clean", 双击快捷方式运行eclipse 即可。

为什么要以"-clean"的选项方式启动?

因为这样指明eclipse启动时所有关于插件的依赖关系都要重建而不是使用之前的缓存内容

eclipse官方文档描述:

if set to "true", any cached data used by the OSGi framework and eclipse runtime will be wiped clean. This will clean the caches used to store bundle dependency resolution and eclipse extension registry data. Using this option will force eclipse to reinitialize these caches.

请参考stackoverflow

转载于:https://www.cnblogs.com/JosephLiao/p/4206750.html

Eclipse 插件之间互相依赖, 导出Jar包安装, 报错“java.lang.NoClassDefFoundError”相关推荐

  1. Idea导出jar包运行报错:找不到主清单属性解决方法

    Idea导出jar包运行报错:找不到主清单属性解决方法 参考文章: (1)Idea导出jar包运行报错:找不到主清单属性解决方法 (2)https://www.cnblogs.com/stars-on ...

  2. java 导入包报错_Intellij IDEA 导入个推jar包 报错java.lang.NoClassDefFoundError

    Intellij IDEA使用的是Gradle,发现个推服务器SDK没有Gradle的导入方式,不会用Maven,只好选择jar包方式导入 却遇到了一个坑. 想通过导入jar包方式使用个推的SDK,直 ...

  3. 使用exe4j把jar转换成exe文件时,报错java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composite

    在使用Eclipse 导出jar后,使用exe4j做成exe文件时保错,java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composit ...

  4. RxAndroid jar包引入异常导致java.lang.NoClassDefFoundError: Failed resolution of: Lio/reactivex/android/sche

    前言: 项目引用第三方sdk,运行报错:java.lang.NoClassDefFoundError: Failed resolution of: Lio/reactivex/android/sche ...

  5. SpringBoot 项目tomcat插件启动报错 java.lang.NoClassDefFoundError: javax/el/ELManager

    问题描述: SpringBoot项目 tomcat插件启动出现下面的问题: ERROR 2021-04-07 08:42:03,129 org.springframework.boot.SpringA ...

  6. JavaWeb以Maven整合Mybatis报错java.lang.NoClassDefFoundError(Web项目未能完全加载Maven下的依赖)

    问题描述 为完成学校课程一个javaweb的demo,想着对数据库的访问能够更加简洁,所以用了Mybatis.因为之前有过Springboot整合Mybatis经验,所以本以为事情会简单.在Junit ...

  7. JAVA第三方包导入但找不到类,解决:导入第三方包报错java.lang.NoClassDefFoundError:XXX.XXX,XXXXXX...

    报错信息如下,主要是导入androidpn测试client端,结果报错 04-02 16:28:34.325: E/dalvikvm(485): Could not find class 'org.a ...

  8. 关于jar包运行报错:Exception in thread “main“ java.lang.UnsupportedClassVersionError的解决办法

    打包jar包后 ,在jar路径下cmd使用命令 java -jar  jar包名字 报错: Exception in thread "main" java.lang.Unsuppo ...

  9. R安装WGCNA包(MacOS M1芯片)及impute包安装报错的解决方法【已成功】

    R安装WGCNA包(MacOS M1芯片) WGCNA R安装WGCNA包 安装impute时的错误 impute包安装报错的解决方法 WGCNA 加权基因共表达网络分析 (WGCNA, Weight ...

最新文章

  1. 程序清单3-1 测试能否对标准输入设置偏移量
  2. java 解析 csv_在Java中将数据从CSV解析到数组
  3. 如何将物理服务器转换成基于的Vmware ESXi虚拟服务器
  4. [设计模式-创建型]原型(Prototype)
  5. 第 3 章:稀疏数组和队列
  6. pca 累积方差贡献率公式_PCA--主成分分析
  7. Oracle Goldengate在HP平台裸设备文件系统OGG-01028处理
  8. bzoj2763:最短路
  9. 关于NXP公司的IMX6系列芯片参考资料体系介绍
  10. 商标45类分类表明细表_商标45类分类表
  11. C++刷题: 逆波兰表达式(力扣150题)
  12. Matlab实现分组检测
  13. 求两个正整数的最大公约数
  14. TCP-面向连接的、可靠的、基于字节流的 传输层通信协议
  15. 个人用 Qt + ffmpeg + D3D9/D3D11 开发的播放器
  16. 自定义动画渲染器 Interceptor
  17. 20个免费的网络电话
  18. flink ui含义图解
  19. 无法打开包括文件: “opencv2/opencv_modules.hpp”
  20. Java中notify() 和 notifyAll()的区别

热门文章

  1. 重大网络教育计算机基础章节答案,网络教育计算机基础1答案
  2. 向Spark的DataFrame增加一列数据
  3. HDFS伪分布式集群搭建
  4. [云计算]网线的标签格式
  5. [postgresql]postgresql的锁介绍
  6. 静态成员常量的初始化
  7. tomcat UTF-8格式的HTML文件乱码
  8. Linux常用命令汇总--cat
  9. Erlang编程语言的一些痛点
  10. Ruby的Fiber根本不是用来做并发的~