我目前正在尝试通过Maven运行一个Java代码来制作一个数据包嗅探工具。目前,我正在运行一个简单的代码来使用NifSelector选择所有当前可用的网络接口,但我在线程"main“java.lang.NoClassDefFoundError中遇到以下错误->异常: org/pcap4j/util/NifSelector。很明显,这表明没有找到这个类,但我在文档或其他文档中找不到任何东西,因此对此错误进行了纠正。我有pcap4j的jar文件,并将其作为依赖项添加到我的pom.xml中。我还在我的windows机器上安装了npcap (这个安装是在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类所需的导入语句运行的代码。https://github.com/kaitoy/pcap4j是指向该项目文档的链接。文档中使用的所有示例都与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-$1.0-SNAPSHOT</finalName>
</configuration>
</plugin>发布于 2019-09-16 14:41:10
您可能没有在最终的JAR中包含所有依赖项。如guide you mention中所述,仔细检查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>https://stackoverflow.com/questions/57928273
复制相似问题