GNU/Linux >> Belajar Linux >  >> Linux

Panggil Syscalls dari Java

Anda perlu menggunakan metode asli, tetapi Anda tidak perlu mengimplementasikannya sendiri. Java memiliki variasi pada JNI yang disebut JNA (Java Native Access), yang memungkinkan Anda mengakses pustaka bersama secara langsung tanpa memerlukan antarmuka JNI yang membungkusnya, sehingga Anda dapat menggunakannya untuk berinteraksi langsung dengan 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");
    }
}

Anda perlu menggunakan metode asli, atau pustaka yang melakukannya untuk Anda.


Linux
  1. Instal Java secara manual di Linux

  2. Instal Java dari repositori distribusi Linux Anda

  3. Tingkatkan Dari Httpd 2.4.6 Ke 2.4.41?

  1. Tangkapan Layar X Dari Tty?

  2. Instal Openssl Dari Sumber?

  3. Bagaimana Cara Memanggil Makro Openoffice Dari Baris Perintah Linux?

  1. Lindungi Kode Java Anda dari Rekayasa Terbalik

  2. Cara menghapus Java dari Ubuntu

  3. Penggunaan Memori Virtual dari Java di Linux, terlalu banyak memori yang digunakan