0

我在我的 OSGI 项目中使用pcap4j 。运行应用程序的设备正在运行 openembedded。当我在设备上的独立应用程序(非 OSGI)中运行我的代码时,它可以正常工作。在 OSGI 中运行时不会。我嵌入了 pcap4j 依赖项,因为它们不是捆绑包。清单包含 com.sun.jna 的导入,并且包 jna 4.2.0 可用(并由另一个包使用)。我还尝试调用 System.load 和 System.loadLibrary ...

4

1 回答 1

0

我也遇到了同样的问题,我为 pcap4j 及其依赖项制作了一个 osgi 包。这是捆绑包中的 jar 文件:

jna-4.2.1.jar, 
pcap4j-core-1.7.3.jar, 
pcap4j-packetfactory-static-1.7.3.jar,
slf4j-api-1.7.12.jar, 
slf4j-nop-1.6.2.jar

整个 MANIFEST.MF 文件:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Pcap4j
Bundle-SymbolicName: pcap4j
Bundle-Version: 1.0.0
Bundle-ClassPath: jna-4.2.1.jar, pcap4j-core-1.7.3.jar, pcap4j-packetfactory-static-1.7.3.jar, slf4j-api-1.7.12.jar, slf4j-nop-1.6.2.jar
Export-Package: com.sun.jna,com.sun.jna.ptr,com.sun.jna.win32,org.pcap4j,org.pcap4j.core,org.pcap4j.packet,org.pcap4j.packet.constant,org.pcap4j.packet.factory,org.pcap4j.packet.namednumber,org.pcap4j.util,org.slf4j,org.slf4j.helpers,org.slf4j.impl,org.slf4j.spi
Bundle-RequiredExecutionEnvironment: JavaSE-1.8

之后,您可以使用 Import-Package 简单地使用这些包。

Import-Package: org.osgi.framework;version="1.3.0", org.pcap4j.core, org.pcap4j.packet, org.pcap4j.packet.namednumber

另请查看pcap4j 存储库上的此问题以获取更多信息。

于 2018-07-17T06:36:40.937 回答