我创建了使用jnetpcap的应用程序。它应该是多平台的,并且可以在32和64平台上运行。我从未使用过maven befor,因此如何将所有版本的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”。

最佳答案

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

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

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


您还可以将此目录作为环境变量包括在内-有关此信息,请参见jnetpcap FAQ

关于java - 如何在Maven项目中将jnetpcap添加为依赖项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38442468/

10-09 00:04