你的位置:首页 > ASP.net教程

[ASP.net教程]Atitit.。Jna技术与解决java.lang.Error:Invalidmemoryaccess


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

 

 

1. 原因与解决1

2. jNA (这个ms sun 的)1

3. Code1

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平台的机制。而JNA是Java平台上的一个开源类库,和其他类库没有什么区别。只需要在classpath下加入jna.jar包,就可以使用JNA

JNA提供了一个动态的C语言编写的转发器,可以自动实现Java和C的数据类型映射。你不再需要编写那个烦人的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