Hello friends,
who has knowledge with pcap4j, and that in b4j
I am trying to send generated wifi packets natively, but I am failing with inline java, always get java.lang.ClassNotFoundException: java$lang$RawFrameSender
which I have done so far:
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
java.lang.ClassNotFoundException: java$lang$RawFrameSender
at anywheresoftware.b4j.object.JavaObject.getCorrectClassName(JavaObject.java:289)
at anywheresoftware.b4j.object.JavaObject.InitializeNewInstance(JavaObject.java:84)
at b4j.example.main._sendmrawframe(main.java:899)
at b4j.example.main._button2_click(main.java:879)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:629)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:234)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:111)
at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:100)
at anywheresoftware.b4a.BA$1.run(BA.java:236)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:832)
also tried to compile RawFrameSender into a .jar File without success
javac -cp path/pcap4j-core-1.8.2.jar:ath/pcap4j-packetfactory-static-1.8.2.jar path/RawFrameSender.java
jar cf RawFrameSender.jar RawFrameSender.class
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
with this inline code
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
am thankful for any help
			
			who has knowledge with pcap4j, and that in b4j
I am trying to send generated wifi packets natively, but I am failing with inline java, always get java.lang.ClassNotFoundException: java$lang$RawFrameSender
which I have done so far:
			
				B4X:
			
		
		
		#AdditionalJar: pcap4j-core-1.8.2 ' pcap4j-core
#AdditionalJar: pcap4j-packetfactory-static-1.8.2 ' pcap4j-packetfactory-static
			
				B4X:
			
		
		
		Sub SendmRawFrame(mframe() As Byte, ifaceName As String)
    Dim inline As JavaObject
    inline = Me
    'inline.InitializeStatic("RawFrameSender")
    inline.InitializeNewInstance("RawFrameSender",Null)
    Try
        inline.RunMethod("sendRawFrame", Array(ifaceName, mframe))
        Log("Frame sent successfully")
    Catch
        Log("Error sending frame: " & LastException.Message)
    End Try
End Sub
Private Sub Button2_Click
'================= Packet example =========================
'00 00 08 00 00 00 00 00 80 00 00 00 FF FF FF FF  | ................
'FF FF 01 02 03 04 05 06 01 02 03 04 05 06 00 00  | ................
'00 08 4A 51 4B 32 58 42 35 55 01 04 01 05 07 09  | ..JQK2XB5U......
'03 01 0B DD 52 26 37 12 58 62 13 10 01 EE 00 DF  | ....R&7.Xb......
'0F 57 32 31 35 36 4F 4E 4D 4B 35 56 52 59 32 53  | .W2156ONMK5VRY2S
'49 2A 05 DB FE DB FE 5D 00 0B 00 16 00 3E 00 B4  | I*.....].....>..
'00 93 00 B0 00 16 00 E1 00 36 73 00 FF 09 F8 5D  | .........6s....]
'00 01 12 38 49 59 56 55 4C 49 33 44 48 36 52 48  | ...8IYVULI3DH6RH
'34 52 35 44 34 00 00                             | 4R5D4..
'==========================================
    Dim frame() As Byte = BuildWirelessFrame() ' the generated frame
    Dim ifaceName As String = "wlan0"
    ' Send the raw frame
    SendmRawFrame(frame, ifaceName)
End Sub
			
				Java:
			
		
		
		#If Java
import org.pcap4j.core.*;
import org.pcap4j.packet.Packet;
import org.pcap4j.packet.UnknownPacket;
public class RawFrameSender {
    // Static method for sending raw frames
    public  void sendRawFrame(String ifaceName, byte[] frameBytes) throws PcapNativeException, NotOpenException {
        PcapNetworkInterface nif = Pcaps.getDevByName(ifaceName);
        if (nif == null) {
            throw new IllegalArgumentException("Network interface not found: " + ifaceName);
        }
        // Open the network interface for sending raw frames
        PcapHandle handle = nif.openLive(65536, PcapNetworkInterface.PromiscuousMode.PROMISCUOUS, 10);
        try {
            // Create and send the packet
            Packet packet = UnknownPacket.newPacket(frameBytes, 0, frameBytes.length);
            handle.sendPacket(packet);
        } finally {
            // Ensure the handle is closed to free resources
            handle.close();
        }
    }
}
#End Ifjava.lang.ClassNotFoundException: java$lang$RawFrameSender
at anywheresoftware.b4j.object.JavaObject.getCorrectClassName(JavaObject.java:289)
at anywheresoftware.b4j.object.JavaObject.InitializeNewInstance(JavaObject.java:84)
at b4j.example.main._sendmrawframe(main.java:899)
at b4j.example.main._button2_click(main.java:879)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:629)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:234)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:111)
at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:100)
at anywheresoftware.b4a.BA$1.run(BA.java:236)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:832)
also tried to compile RawFrameSender into a .jar File without success
javac -cp path/pcap4j-core-1.8.2.jar:ath/pcap4j-packetfactory-static-1.8.2.jar path/RawFrameSender.java
jar cf RawFrameSender.jar RawFrameSender.class
			
				Java:
			
		
		
		public static void sendRawFrame(String ifaceName, byte[] frameBytes) throws PcapNativeException, NotOpenException {
    // Get the network interface by name
    PcapNetworkInterface nif = Pcaps.getDevByName(ifaceName);
    if (nif == null) {
        throw new IllegalArgumentException("Network interface not found: " + ifaceName);
    }
    // Open a handle for sending packets
    PcapHandle handle = nif.openLive(65536, PcapNetworkInterface.PromiscuousMode.PROMISCUOUS, 10);
    // Create a raw packet
    Packet packet = UnknownPacket.newPacket(frameBytes, 0, frameBytes.length);
    // Send the packet
    handle.sendPacket(packet);
    // Close the handle
    handle.close();
}with this inline code
			
				java3:
			
		
		
		import org.pcap4j.core.*;
import org.pcap4j.packet.Packet;
import org.pcap4j.packet.UnknownPacket;
public class RawFrameSender {
    public static void sendRawFrame(String ifaceName, byte[] frameBytes) throws PcapNativeException, NotOpenException {
        // Get interface by name
        PcapNetworkInterface nif = Pcaps.getDevByName(ifaceName); // class org.pcap4j.core.Pcaps
        if (nif == null) {
            throw new IllegalArgumentException("Network interface not found: " + ifaceName);
        }
        // Open
        PcapHandle handle = nif.openLive(65536, PcapNetworkInterface.PromiscuousMode.PROMISCUOUS, 10);
        // Create a raw packet
        Packet packet = UnknownPacket.newPacket(frameBytes, 0, frameBytes.length);
        handle.sendPacket(packet);
        // Close  handle
        handle.close();
    }
}am thankful for any help
 
				 
 
		 
 
		 
 
		 
 
		