GNU/Linux >> Linux Esercitazione >  >> Linux

JDK 1.8 su Linux include il file JNI mancante

Sembra così. #include "jni_md.h" includerebbe il file nella stessa directory di jni.h , ma è inserito in linux cartella.

Nelle precedenti versioni di JDK sembra che il file e un altro fossero posti in include/linux cartella, ma ci sono collegamenti simbolici a entrambi i file in include .

Quindi puoi semplicemente creare collegamenti simbolici a entrambi i 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

Modifica

Come affermato nei commenti di Absurd-Mind e Mikkel, c'è anche la possibilità di aggiungere quel percorso alle opzioni del compilatore makefile:

-I$(JAVA_HOME)/include/linux/

No, questo non è un bug. Il modo corretto per risolvere questo problema è fornire -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux opzioni del compilatore. In questo modo i tuoi script di build rimangono portabili.

L'OP sta affrontando il problema su Linux, ma se qualcuno sta affrontando questo problema su Windows, aggiungi le seguenti opzioni del compilatore.

-I"%JAVA_HOME%\include" -I"%JAVA_HOME%\include\win32" dove JAVA_HOME punta alla directory di installazione di JDK, solitamente 'C:\Program Files\Java\jdk1.{7|8}.{}_{xx}'


Linux
  1. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  2. Linux:differenza tra /dev/console , /dev/tty e /dev/tty0?

  3. Esempio di file /etc/services in Linux

  4. Comprensione del file di configurazione /etc/profile in Linux

  5. Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

Che cos'è Fstab in Linux | Un'introduzione al file /etc/fstab di Linux

/dev/null in Linux

/proc/cpuinfo e /proc/meminfo in Linux

Che cos'è il file /etc/passwd in Linux?

Comprendere il file /etc/fstab in Linux

unix:///var/run/supervisor.sock nessun file di questo tipo