Atitit. 。Jna技術與 解決 java.lang.Error: Invalid memory access


Atitit. Jna技術與 解決 java.lang.Error: Invalid memory access

 

 

1原因與解決1

2jNA (這個ms sun )1

3Code1

4參考2

 

1.  原因與解決

 

Timeout::wait  dll 或者other resource load finish...

And retry

 

2.  jNA (這個ms sun )


我目前正做着一個相關的項目,說白了JNA就是JNI的替代品,以前用JNI需要編譯一層中間庫,現在JNA直接調用C的庫
JNA的功能和P/Invoke類似,但編寫方法與P/Invoke截然不同。JNA沒有使用Annotation,而是通過編寫一般的Java代碼來實現。

P/Invoke.NET平台的機制。而JNAJava平台上的一個開源類庫,和其他類庫沒有什么區別。只需要在classpath下加入jna.jar包,就可以使用JNA

JNA提供了一個動態的C語言編寫的轉發器,可以自動實現JavaC的數據類型映射。你不再需要編寫那個煩人的C動態鏈接庫。

當然,這也意味着,使用JNA技術比使用JNI技術調用動態鏈接庫會有些微的性能損失。可能速度會降低幾倍。但對於絕大部分項目來說,影響不大。

 

作者:: 老哇的爪子 Attilax 艾龍,  EMAIL:1466519819@qq.com

轉載請注明來源: http://www.cnblogs.com/attilax/

 

 

3.  Code

 

public static void inix() throws IniEx {

 

//while(true)

{

try {

Thread.sleep(5000);

 

try {

ini_core();

catch (Exception e) {

ini_core();

}

 

 

 

catch (InterruptedException e2) {

// TODO Auto-generated catch block

e2.printStackTrace();

}

}

 

}

private static void ini_core() throws IniEx {

if(userID<=0)

{

try {

 

catch (Throwable e) {

throw new RuntimeException(e);

}

 

if(userID<=0)

throw new IniEx();

 

}

}

 

 

4.  參考

paip.java 調用c++ dll so總結 - attilax的專欄 博客頻道 - CSDN.NET.html

paip.java c# .net php python調用c++ c dll so windows api 總結 - attilax的專欄 博客頻道 - CSDN.NET.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM