【问题标题】:Start a main method of a class from within an OSGi bundle从 OSGi 包中启动类的主要方法
【发布时间】:2013-10-03 14:07:18
【问题描述】:

我有一个 jar 文件 A.jar,其中包含各种库函数中的一个类,该类具有 main 方法 MainClass。此 jar 文件通过将其包装到 OSGi 包 B.jar 中进行部署,以便库函数可用于 OSGi 容器中的其他插件,如 B.jar 的 MANIFEST.MF 中所指定。

我还希望能够在 OSGi 之外的单独进程中启动 A.jar 中包含的 MainClass.main 方法,但我在文件系统上可用的只有 B.jar。所以,例如,

java -cp B.jar MainClass

失败

Error: Could not find or load main class MainClass

java -cp A.jar MainClass

在 A.jar 被 B.jar 包裹之前,在我的桌面上工作得很好。

有没有办法直接从 B.jar 运行MainClass.main

【问题讨论】:

    标签: java osgi-bundle


    【解决方案1】:

    不清楚,但我假设 B.jar 包含 A.jar 作为条目。所以A.jar只是B.jar中的一个资源。为了从 B.jar 运行 A.jar 中的 MainClass,您需要为 B.jar 编写一个新的 main,它将为 A.jar 资源创建一个 ClassLoader,然后加载 MainClass 类并调用它的 main 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-27
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 2018-04-17
      • 2012-11-15
      相关资源
      最近更新 更多