Java 从OSGi包中启动类的主方法
我有一个jar文件a.jar,它在各种库函数中包含一个带有main方法MainClass的类。这个jar文件是通过将其包装到OSGi包B.jar中来部署的,这样库函数就可以用于OSGi容器中的其他插件,如B.jar的MANIFEST.MF中所指定的 我还希望能够在OSGi之外的单独进程中启动A.jar中包含的MainClass.main方法,但我在文件系统中只有B.jar可用。那么比如说,Java 从OSGi包中启动类的主方法,java,osgi-bundle,Java,Osgi Bundle,我有一个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 o
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?不清楚,但我假设B.jar包含一个.jar条目。所以A.jar只是B.jar中的一个资源。为了从B.jar运行A.jar中的MainClass,您需要为B.jar编写一个新的main,它将为A.jar资源创建一个类加载器,然后加载MainClass类并调用其main方法