Atitit. 。Jna技术与 解决 java.lang.Error: Invalid memory access

Atitit. Jna技术与 解决 java.lang.Error: Invalid memory access

 

 

1原因与解决 1

2jNA (这个ms sun ) 1

3Code 1

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://blog.csdn.net/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


原文地址:https://www.cnblogs.com/attilax/p/5963629.html