我创建了使用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 =&#34; org.sample.Main&#34;它崩溃了错误:&#34; java.library.path中没有jnetpcap&#34;。
答案 0 :(得分:1)
您的POM文件是正确的,但jnetpcap对本机库具有运行时依赖性,这就是您在尝试运行应用程序时收到错误的原因。为了解决这个问题,您必须在启动期间指定包含本机库的目录。
例如,在Windows上,这看起来像这样:
java -Dexec.mainClass="org.sample.Main" -Djava.library.path=C:\jnetpcap-1.4.r1425
您还可以将此目录包含为环境变量 - 有关详细信息,请参阅jnetpcap FAQ。