You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse IDE 2020-03调试器异常问题求助

针对你的OSGi调试问题的排查与解决建议

看起来你在Eclipse 2020-03里调试OSGi插件时遇到了一串关联问题,我来一步步帮你梳理排查方向:

一、Class.getResource()参数显示null的问题

回到最初的资源读取问题,大概率是资源没有被正确打包进bundle:

  • 确认资源位置与build配置:把test.cfg放在项目的src目录(或者专门的resources目录),然后打开项目的build.properties,确保bin.includes里包含这个文件,比如:
    bin.includes = ., META-INF/, test.cfg
    
    只有这样,Eclipse打包bundle时才会把资源文件放进classpath根目录,getResourceAsStream("/test.cfg")才能找到它。
  • 尝试类加载器的另一种写法:有时候用类加载器直接读取会更可靠,替换成:
    InputStream in = getClass().getClassLoader().getResourceAsStream("test.cfg");
    
    注意这里路径不要加开头的/,因为类加载器的getResource是从classpath根开始查找的。

二、测试项目日志不显示、断点无响应的问题

这个问题看起来和调试配置残留、bundle加载错误直接相关:

  • 彻底检查调试配置:
    打开Run/Debug Configurations,找到你的OSGi Framework配置:
    • 在Bundles标签页,一定要选择Selected Bundles,然后只添加你的test.myapp.core和核心依赖org.eclipse.osgi(OSGi框架本身),其他无关bundle全部移除——这就是为什么ss命令显示很多bundle的原因,你可能不小心选了默认的全量bundle。
    • 在Main标签页,勾选Clear the configuration area before launching,这样每次启动都会清空旧的配置缓存,避免加载旧版本的bundle。
    • 在Debug标签页,确认Enable debugging是勾选状态,端口没有被占用。
  • 解决日志不显示的问题:
    你用的是java.util.Logger,默认情况下它的日志输出可能没有定向到控制台。可以在调试配置的Arguments标签页的VM arguments里添加:
    -Djava.util.logging.config.file=path/to/your/logging.properties
    
    或者简单点,直接在代码里临时设置日志级别:
    logger.setLevel(Level.ALL);
    ConsoleHandler handler = new ConsoleHandler();
    handler.setLevel(Level.ALL);
    logger.addHandler(handler);
    
    另外,不要在Activator的构造函数里打日志——OSGi加载bundle时构造函数会被调用,但此时日志系统可能还没初始化完成,把日志移到start方法里更可靠。
  • 断点无响应的排查:
    检查项目的编译设置:右键项目 > Properties > Java Compiler > Classfile Generation,确保勾选了Add line number attributes to generated class files和Add variable attributes to generated class files——没有这些属性,调试器无法定位断点位置。
  • 清理旧bundle残留:
    打开Eclipse的Plug-ins视图(Window > Show View > Other > Plug-ins),找到test.myapp.core,右键选择Uninstall,然后重启调试配置,强制加载最新的项目编译版本。

三、终极清理方案

如果上面的步骤都无效,试试彻底清理缓存:

  1. 关闭Eclipse。
  2. 删除工作区.metadata目录下的.plugins/org.eclipse.pde.core和.plugins/org.eclipse.debug.core文件夹(这两个是PDE调试和插件管理的缓存)。
  3. 重新打开Eclipse,重新创建调试配置,再尝试启动。

内容的提问来源于stack exchange,提问作者keesp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 11:12:28