Sie müssen eine native Methode verwenden, aber Sie müssen sie nicht selbst implementieren. Java hat eine Variation von JNI namens JNA (Java Native Access), mit der Sie direkt auf gemeinsam genutzte Bibliotheken zugreifen können, ohne dass eine JNI-Schnittstelle um sie herumgewickelt werden muss, sodass Sie diese verwenden können, um direkt mit glibc zu kommunizieren:
import com.sun.jna.Library;
import com.sun.jna.Native;
public class Test {
public interface CStdLib extends Library {
int syscall(int number, Object... args);
}
public static void main(String[] args) {
CStdLib c = (CStdLib)Native.loadLibrary("c", CStdLib.class);
// WARNING: These syscall numbers are for x86 only
System.out.println("PID: " + c.syscall(20));
System.out.println("UID: " + c.syscall(24));
System.out.println("GID: " + c.syscall(47));
c.syscall(39, "/tmp/create-new-directory-here");
}
}
Es ist notwendig, eine native Methode oder eine Bibliothek zu verwenden, die dies für Sie erledigt.