Atitit. 。Jna技术与 解决 java.lang.Error: Invalid memory access
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://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