当前位置: 首页 > 知识库问答 >
问题:

Eclipse IDE 2020-03调试器正在做一些奇怪的事情

潘涵煦
2023-03-14

清除、清理、重新加载目标(运行平台)、刷新和重建都没有改变任何东西,所以我决定创建一个简单的OSGI插件项目,只使用一个激活器,以及一个调试配置,只使用最小的捆绑包。

激活器如下所示:

public class Activator implements BundleActivator {

        public static final String BUNDLE_ID = "test.myapp.core";

        private static BundleContext context;

        private Logger logger = Logger.getLogger(this.getClass().getName());

        static BundleContext getContext() {
            return context;
        }


        public Activator() {
            super();
            logger.info("STARTED: " + BUNDLE_ID);
        }


        @Override
        public void start(BundleContext bundleContext) throws Exception {
            logger.info("ACTIVATED: " + BUNDLE_ID);
            Activator.context = bundleContext;
            InputStream in = getClass().getResourceAsStream( "/test.cfg" );
        }


        @Override
        public void stop(BundleContext bundleContext) throws Exception {
            Activator.context = null;
        }

    }

编辑:为了避免混淆,将原来的build.properties链接更改为test.cfg。

但当我启动调试器时,它将激活包,但不会显示任何日志消息。此外,调试器也不会响应我放入的断点。奇怪的是,选择'ss'显示的包比调试配置中提供的包多得多。

id状态包
0 ACTIVE org.eclipse.osgi_3.15.200.v20200214-1600
1 ACTIVE test.myapp.core_1.0.0.qualifier
2 ACTIVE org.apache.lucene.core.source_8.4.1.v20200122-1459
3 ACTIVE javax.annotation.source_1.2.0.v201602091430
...

似乎启动了一个不同的调试配置,并且使用的是以前构建的my bundle版本,其中还没有包含日志消息。清除bin文件夹,最终所有的元数据也没有效果。

我对我在这里所经历的一切完全感到困惑。希望有人能帮忙!

共有1个答案

杨轶
2023-03-14

嗯...看起来,我发现了问题所在。同时出现了两个问题:

1:关于getResource(字符串名称)的问题。MANIFEST.MF中的Bundle-ClassPath设置必须包括。(参见https://www.eclipse.org/forums/index.php/T/287184/),所以在我的例子中:

Bundle-ClassPath: .,
 test.myapp.core

Bundle-ClassPath不是由插件向导自动添加的,这会导致一些问题。

我会为这些问题提交一份报告

附加

因此,我对Bundle-ClassPath问题做了一些进一步的研究,以及在添加一些库时,在manifest.mf中的这个条目可能发生了什么。再次移除Bundle-ClassPath条目后,仍然保留了这些条目,并导致了各种问题。如果您曾经:

 类似资料:
  • 问题内容: 如果我在SQL Server Express 2008上运行此查询: 它将日期存储为2011年4月11日 我该如何预防呢? 问题答案: 使用ISO-8601格式:(或)-无论您使用哪种SQL Server语言和区域设置,它始终有效。 SQL Server中的日期 不 以任何特定的面向字符串的格式存储-日期即是日期即是日期,无论您看到什么。 您会看到日期的字符串表示形式-但又一次:日期

  • 所以我有一个页面对象,它处理用户所在页面的所有主要功能。当页面对象的实例被调用时,我想这样做。在当前情况下,我有: 当我调用我希望导航到该屏幕,而无需在

  • 问题内容: 我正在使用Python 3.6.1,但遇到了一些非常奇怪的事情。我有一个简单的字典作业错字,花了很长时间才找到。 输出量 代码在做什么?IMO应该什么时候都没有提出。起初,我认为它正在创建一个切片。但是,键入会引发一个。我也输入了控制台,但控制台没有打印任何内容。我以为也许它回来了,但是我不太确定。 我还认为这可能是单行if语句,但这也不应该是正确的语法。 此外,应提出一个。 我很困惑

  • 18min 啥也没有 就问研究方向 这是纯纯的kpi啊😅 ……竟然收到测评了 这也行😅 更新 9.29 收到二面通知 好奇二面会是hr面吗 这真的啥也没问 9.30 荣耀二面 自我介绍 为什么留学 有没有从0开始完成一个项目 为什么选择c++ 遇到过最困难的事情 你的工作地点可能会变化吗 你的薪资期望是多少 国外留学的毕业要求是什么 学习软件看过什么书吗 结束 没有反问 总结来说,从一面到二面

  • 我不明白它是如何工作的 Spring的事务注释。所以我做了下一个测试,没有实际意义,但我它显示了我的问题: 方法,transaction必需/code>)可以正常工作。其他两个返回消息No existing transaction found for transactions marked with propagation‘mandatory’。 但是如果一个非事务性方法调用一个事务性方法(用注释

  • 时长大约一个小时,很奇怪的面试,我走的明明是前端,他整个面试一直在问我后端的东西,只因我的个人项目里面写了后端,我把我的个人项目传到了github上,然后面试官会看你github上面的内容,会看项目里面的具体的代码! 回忆版,顺序可能不对,可能不全 面试官自我介绍他们的业务 手撕(大约20分钟): 1、将markdown无序列表转为javascript对象,第一题只说了思路然后就不会了,面试官开启