天天看點

JNA 編譯-Djava.library.path

一。如何使用native方法?

java一般使用兩個path:classpath 和 java.library.path

classpath是指向jar包的位置。也就是JDK的lib目錄

java.library.path是非java類包的位置如(dll,so)

配制方法:

1:LINUX下的系統變量LD_LIBRARY_PATH來添加java.library.path

2:在vm arguments裡添加-Djava.library.path=所在目錄

3:在 一個工程的Java Build Path中配置,如下圖

JNA 編譯-Djava.library.path

二。為什麼要使用native方法?

Java不是完美的,Java的不足除了展現在運作速度上要比傳統的C++慢許多之外,Java無法直接通路到作業系統底層(如系統硬體等),為此Java使用native方法來擴充Java程式的功能。

三。​​Native Hadoop Libraries​​

預設沒有配制native hadoop在跑MapReduce時會出現

13/12/18 10:57:59 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

13/12/18 10:57:59 WARN snappy.LoadSnappy: Snappy native library not loaded

如果選擇自己編譯Hadoop

提示:Execute failed: java.io.IOException: Cannot run program "autoreconf" 

yum install autoconf  automake  libtool

配置native-hadoop library 

1.配制Hadoop Library

JNA 編譯-Djava.library.path

2.在Hadoop Library裡配置 native hadoop 目錄