Pcap4J Error:java.lang.ClassNotFoundException: org.pcap4j.util.NifSelector while trying to run my code to list out the available interfaces
Pcap4J Error:java.lang.ClassNotFoundException: org.pcap4j.util.NifSelector while trying to run my code to list out the available interfaces
我目前正在尝试通过 Maven 运行 Java 代码来制作数据包嗅探工具。目前我正在运行使用 NifSelector select 所有当前可用的网络接口的简单代码,但我 运行 会遇到以下错误 -> 线程异常 "main" java.lang.NoClassDefFoundError:org/pcap4j/util/NifSelector。这表明 class 显然没有找到,但我在文档或 SO 上找不到任何可以纠正此错误的内容。我有 pcap4j 的 jar 文件,我已将它作为依赖项添加到我的 pom.xml 中。我还在我的 windows 机器上安装了 npcap(这个设置是 运行ning 在 windows 上)。
import org.pcap4j.util.NifSelector;
public class App
{
public static void main( String[] args )
{
PcapNetworkInterface device = null;
try{
device = new NifSelector().selectNetworkInterface();
}catch(IOException e){
e.printStackTrace();
}
System.out.println( "Your choice: " + device);
}
}
以上是我试图 运行 也使用 NifSelector class 所需的导入语句的代码。 https://github.com/kaitoy/pcap4j 是项目文档的 link。文档中使用的所有示例都没有 NifSelector 的任何问题。
任何帮助将不胜感激!
编辑:添加了 pom.xml 片段
<dependency>
<groupId>org.pcap4j</groupId>
<artifactId>pcap4j-core</artifactId>
<version>1.8.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.pcap4j</groupId>
<artifactId>pcap4j-packetfactory-static</artifactId>
<version>1.8.2</version>
</dependency>
Pom.xml 着色器插件片段
<!-- Embed dependencies inside the final JAR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<finalName>new-.0-SNAPSHOT</finalName>
</configuration>
</plugin>
您可能没有在最终的 JAR 中包含所有依赖项。仔细检查 guide you mention, the maven-shade-plugin 中所说的是否正确执行。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<finalName>uber-${project.artifactId}-${project.version}</finalName>
</configuration>
</plugin>
</plugins>
</build>
我目前正在尝试通过 Maven 运行 Java 代码来制作数据包嗅探工具。目前我正在运行使用 NifSelector select 所有当前可用的网络接口的简单代码,但我 运行 会遇到以下错误 -> 线程异常 "main" java.lang.NoClassDefFoundError:org/pcap4j/util/NifSelector。这表明 class 显然没有找到,但我在文档或 SO 上找不到任何可以纠正此错误的内容。我有 pcap4j 的 jar 文件,我已将它作为依赖项添加到我的 pom.xml 中。我还在我的 windows 机器上安装了 npcap(这个设置是 运行ning 在 windows 上)。
import org.pcap4j.util.NifSelector;
public class App
{
public static void main( String[] args )
{
PcapNetworkInterface device = null;
try{
device = new NifSelector().selectNetworkInterface();
}catch(IOException e){
e.printStackTrace();
}
System.out.println( "Your choice: " + device);
}
}
以上是我试图 运行 也使用 NifSelector class 所需的导入语句的代码。 https://github.com/kaitoy/pcap4j 是项目文档的 link。文档中使用的所有示例都没有 NifSelector 的任何问题。 任何帮助将不胜感激!
编辑:添加了 pom.xml 片段
<dependency>
<groupId>org.pcap4j</groupId>
<artifactId>pcap4j-core</artifactId>
<version>1.8.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.pcap4j</groupId>
<artifactId>pcap4j-packetfactory-static</artifactId>
<version>1.8.2</version>
</dependency>
Pom.xml 着色器插件片段
<!-- Embed dependencies inside the final JAR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<finalName>new-.0-SNAPSHOT</finalName>
</configuration>
</plugin>
您可能没有在最终的 JAR 中包含所有依赖项。仔细检查 guide you mention, the maven-shade-plugin 中所说的是否正确执行。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<finalName>uber-${project.artifactId}-${project.version}</finalName>
</configuration>
</plugin>
</plugins>
</build>