Low-level libpcap bindings for Java using Panama Foreign Function & Memory API.
jNetPcap Bindings provides direct access to libpcap from Java via the Panama FFM API. This is the version 3 release of the popular jNetPcap library, originally hosted on SourceForge.net.
Note: Version 3 uses Panama FFM (not JNI). Requires JDK 22+.
- Overview
- Architecture
- Quick Start
- Examples
- Dependencies
- Installation
- Documentation
- Contact
- Migration from v1/v2
Direct libpcap access from Java using Panama Foreign Function & Memory API for zero-overhead native calls.
Key Features:
- Zero-Overhead Native Calls - Panama FFM provides near-native performance
- Type-Safe Bindings - Java-friendly API wrapping libpcap functions
- Memory Safety - Automatic resource management via Arena scopes
- Cross-Platform - Linux, Windows (Npcap/WinPcap), macOS
┌─────────────────────────┐
│ Java Application │
└───────────┬─────────────┘
│
┌───────────▼─────────────┐
│ jnetpcap-bindings │ ◄── This module
│ (Panama FFM API) │
└───────────┬─────────────┘
│
┌───────────▼─────────────┐
│ libpcap / Npcap │
└───────────┬─────────────┘
│
┌───────────▼─────────────┐
│ Operating System │
└───────────┬─────────────┘
│
┌───────────▼─────────────┐
│ Network Interface │
└─────────────────────────┘
For higher-level packet capture and protocol analysis, see jnetpcap-api and jnetpcap-sdk.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.slytechs.sdk</groupId>
<artifactId>sdk-bom</artifactId>
<version>3.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.slytechs.sdk</groupId>
<artifactId>jnetpcap-bindings</artifactId>
</dependency>
</dependencies>module your.module {
requires com.slytechs.jnet.jnetpcap;
}void main() throws PcapException {
List<PcapIf> devices = Pcap.findAllDevs();
try (Pcap pcap = Pcap.create(devices.getFirst())) {
pcap.activate();
pcap.loop(1, (String msg, PcapHeader header, byte[] packet) -> {
System.out.printf("Captured %d bytes%n", header.captureLength());
}, "Capture Example");
}
}void main() throws PcapException {
byte[] packetBytes = HexStrings.parseHexString("0026622f4787...");
List<PcapIf> devices = Pcap.findAllDevs();
try (Pcap pcap = Pcap.create(devices.getFirst())) {
pcap.activate();
pcap.sendPacket(packetBytes);
}
}void main() throws PcapException, InterruptedException {
List<PcapIf> devices = Pcap.findAllDevs();
try (Pcap pcap = Pcap.create(devices.getFirst())) {
pcap.activate();
for (int i = 0; i < 5; i++) {
System.out.println(pcap.stats());
Thread.sleep(1000);
}
}
}java --enable-native-access=com.slytechs.jnet.jnetpcap \
-Djava.library.path=/usr/lib \
-jar your-app.jar- JDK 22+ - Required for Panama FFM API
One of:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.slytechs.sdk</groupId>
<artifactId>sdk-bom</artifactId>
<version>3.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.slytechs.sdk</groupId>
<artifactId>jnetpcap-bindings</artifactId>
</dependency>
</dependencies><dependency>
<groupId>com.slytechs.sdk</groupId>
<artifactId>jnetpcap-bindings</artifactId>
<version>3.0.0</version>
</dependency>dependencies {
implementation platform('com.slytechs.sdk:sdk-bom:3.0.0')
implementation 'com.slytechs.sdk:jnetpcap-bindings'
}- GitHub Wiki - User guides and examples
- Javadocs - API documentation
- SDK BOM - Version management
- Email: sales@slytechs.com
- Website: www.slytechs.com
| Aspect | v1/v2 | v3 |
|---|---|---|
| Native integration | JNI | Panama FFM |
| Java version | 8-11 | 22+ |
| Maven groupId | com.slytechs.jnet.jnetpcap |
com.slytechs.sdk |
| Maven artifactId | jnetpcap-wrapper |
jnetpcap-bindings |
| Module name | com.slytechs.sdk.jnetpcap |
com.slytechs.jnet.jnetpcap |
Protocol dissection (Ethernet, IP, TCP, etc.) is available via separate modules:
- sdk-protocol-tcpip - TCP/IP stack
- sdk-protocol-web - Web protocols
- jnetpcap-api - High-level capture API
- jnetpcap-sdk - Complete SDK starter
For detailed migration instructions, see the Wiki.
- jnetpcap-api - High-level packet capture API
- jnetpcap-sdk - Complete SDK starter (recommended)
- sdk-protocol-tcpip - TCP/IP protocol pack
- sdk-common - Core utilities
Sly Technologies Inc. - High-performance network analysis solutions
Website: www.slytechs.com