GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Rufen Sie Syscalls von Java auf

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.


Linux
  1. Schützen Sie Ihren Java-Code vor Reverse Engineering

  2. Installieren Sie Oracle Java 10 (JDK 10) in Debian aus dem PPA-Repository

  3. So deinstallieren Sie Java von Ubuntu

  4. Virtual Memory Usage von Java unter Linux, zu viel Speicher belegt

  5. Rufen Sie einen Linux-Systemaufruf von einer Skriptsprache aus auf

So überprüfen Sie die Java-Version

Upgrade von 10.04 auf 11.04?

Migrieren Sie eine Java-Webanwendung von Amazon Web Services

So installieren Sie Java 8 JRE und JDK aus einer RPM-Datei unter Linux

Wie führe ich ein Python-Skript von Java aus aus?

Wie installiere ich zwei verschiedene Versionen von Java auf demselben Computer von EPEL