1

我创建了使用 jnetpcap 的应用程序。它应该是多平台的,可以在 32 和 64 平台上运行。我之前从未使用过 maven,那么如何将所有版本的 jnetpcap 添加到项目中?

我找到了一个使用 nar https://github.com/sugree/jnetpcap的解决方案,但我不明白如何正确使用它。

我应该复制项目的结构并在那里编译 jnetpcap 吗?如果这是 nar,而不是依赖项,如何将其添加到项目中,以便我可以在 java 类中使用 jnetpcap?

PS我也尝试使用conf从这里添加jnetpcap作为依赖项:https ://www.versioneye.com/clojure/jnetpcap:jnetpcap/1.4.r1425-1d

我已将此行添加到我的 pom.xml 中:

  <repositories>
<repository>
  <id>clojars</id>
  <url>http://clojars.org/repo/</url>
</repository>

<dependency>
<groupId>jnetpcap</groupId>
<artifactId>jnetpcap</artifactId>
<version>1.4.r1425-1d</version>

它编译时没有错误,但是当我尝试使用命令执行项目时:exec:java -Dexec.mainClass="org.sample.Main" 它因错误而崩溃:“java.library.path 中没有 jnetpcap”。

4

1 回答 1

1

您的 POM 文件是正确的,但 jnetpcap 对本机库具有运行时依赖关系,这就是您在尝试运行应用程序时遇到错误的原因。为了解决这个问题,您必须在启动期间指定包含本机库的目录。

例如,在 Windows 上,这看起来像这样:

java -Dexec.mainClass="org.sample.Main" -Djava.library.path=C:\jnetpcap-1.4.r1425

您还可以将此目录作为环境变量包含在内 -有关更多信息,请参阅jnetpcap 常见问题解答。

于 2016-08-01T17:23:07.990 回答