GNU/Linux >> Tutoriels Linux >  >> Linux

Invoquer des appels système depuis Java

Vous devez utiliser une méthode native, mais vous n'avez pas besoin de l'implémenter vous-même. Java a une variante de JNI appelée JNA (Java Native Access), qui vous permet d'accéder directement aux bibliothèques partagées sans avoir besoin d'une interface JNI enroulée autour d'elles, vous pouvez donc l'utiliser pour vous interfacer directement avec glibc :

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");
    }
}

Il est nécessaire d'utiliser une méthode native, ou une bibliothèque qui le fait pour vous.


Linux
  1. Comment installer Java sur Linux

  2. Mettre à niveau de Httpd 2.4.6 vers 2.4.41 ?

  3. Comment invoquer une macro Openoffice à partir de la ligne de commande Linux ?

  4. Comment invoquer un appel système via syscall ou sysenter en assembleur en ligne ?

  5. Appeler un appel système Linux à partir d'un langage de script

Installer Java manuellement sur Linux

Installez Java à partir des dépôts de votre distribution Linux

Comment vérifier la version Java

Passer de 10.04 à 11.04 ?

Migrer une application Web Java depuis Amazon Web Services

Comment installer Java 8 JRE et JDK à partir du fichier RPM sous Linux