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" でプロジェクトを実行しようとすると、エラー: "no jnetpcap in java.library.path" でクラッシュします。

4

1 に答える 1

1

POM ファイルは正しいですが、jnetpcap はネイティブ ライブラリにランタイム依存関係があるため、アプリケーションを実行しようとするとエラーが発生します。これを解決するには、起動時にネイティブ ライブラリを含むディレクトリを指定する必要があります。

たとえば、Windows では次のようになります。

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

このディレクトリを環境変数として含めることもできます。詳細については、jnetpcap FAQを参照してください。

于 2016-08-01T17:23:07.990 に答える