GNU/Linux >> Belajar Linux >  >> Linux

JDK 1.8 di Linux tidak menyertakan file JNI

Sepertinya begitu. #include "jni_md.h" akan menyertakan file dalam direktori yang sama dengan jni.h , tetapi ditempatkan di linux folder.

Dalam versi JDK sebelumnya, tampaknya file dan lainnya ditempatkan di include/linux folder, tetapi ada symlink ke kedua file di include .

Jadi Anda bisa membuat symlink ke kedua file:

$ sudo ln -s /opt/jdk1.8.0_11/include/linux/jni_md.h /opt/jdk1.8.0_11/include/jni_md.h
$ sudo ln -s /opt/jdk1.8.0_11/include/linux/jawt_md.h /opt/jdk1.8.0_11/include/jawt_md.h

Edit

Seperti yang dinyatakan dalam komentar oleh Absurd-Mind dan Mikkel, ada juga opsi untuk menambahkan jalur tersebut ke opsi kompiler makefile:

-I$(JAVA_HOME)/include/linux/

Tidak, ini bukan bug. Cara yang tepat untuk mengatasi masalah ini adalah dengan memberikan -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux opsi penyusun. Dengan cara ini, skrip build Anda tetap portabel.

OP menghadapi masalah di Linux, tetapi jika ada yang menghadapi masalah ini di windows, tambahkan opsi kompiler berikut.

-I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32" di mana JAVA_HOME menunjuk ke direktori instalasi JDK Anda, biasanya 'C:\Program Files\Java\jdk1.{7|8}.{}_{xx}'


Linux
  1. Pengantar file Linux /etc/fstab

  2. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  3. Linux – Tujuan Direktori /net?

  1. Bagaimana cara membuat file di Linux dari jendela terminal?

  2. unix:///var/run/supervisor.sock tidak ada file seperti itu

  3. gema atau cetak /dev/stdin /dev/stdout /dev/stderr

  1. Linux:Perbedaan Antara /dev/console , /dev/tty Dan /dev/tty0?

  2. Linux – Menggabungkan /usr/bin Dan /usr/sbin Ke /bin (gnu/linux)?

  3. Memahami file /etc/hosts di Linux