Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从OSGi包中启动类的主方法_Java_Osgi Bundle - Fatal编程技术网

Java 从OSGi包中启动类的主方法

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

我有一个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?

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