1.它们都可以用来装载库文件,不论是JNI库文件还是非JNI库文件。在任何本地方法被调用之前必须先用这个两个方法之一把相应的JNI库文件装载。
2.System.load 参数为库文件的绝对路径,可以是任意路径。
例如你可以这样载入一个windows平台下JNI库文件:
System.load("C:\\Documents and Settings\\TestJNI.dll");。
3. System.loadLibrary 参数为库文件名,不包含库文件的扩展名。
例如你可以这样载入一个windows平台下JNI库文件
System. loadLibrary ("TestJNI");
这里,TestJNI.dll 必须是在java.library.path这一jvm变量所指向的路径中。
可以通过如下方法来获得该变量的值:
System.getProperty("java.library.path");
默认情况下,在Windows平台下,该值包含如下位置:
1)和jre相关的一些目录
2)程序当前目录
3)Windows目录
4)系统目录(system32)
5)系统环境变量path指定目录
4.如果你要载入的库文件静态链接到其它动态链接库,例如TestJNI.dll 静态链接到dependency.dll, 那么你必须注意:
1)如果你选择
System.load("C:\\Documents and Settings\\ TestJNI.dll");
那么即使你把dependency.dll同样放在C:\\Documents and Settings\\下,load还是会因为找不到依赖的dll而失败。因为jvm在载入TestJNI.dll会先去载入TestJNI.dll所依赖的库文件dependency.dll,而dependency.dll并不位于java.library.path所指定的目录下,所以jvm找不到dependency.dll。
你有两个方法解决这个问题:一是把C:\\Documents and Settings\\加入到java.library.path的路径中,例如加入到系统的path中。二是先调用
System.load("C:\\Documents and Settings\\ dependency.dll"); 让jvm先载入dependency.dll,然后再调用System.load("C:\\Documents and Settings\\ TestJNI.dll");
2)如果你选择
System. loadLibrary ("TestJNI");
那么你只要把dependency.dll放在任何java.library.path包含的路径中即可,当然也包括和TestJNI.dll相同的目录。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ring0hx/archive/2008/11/06/3242245.aspx
分享到:
相关推荐
以下是对System.load与System.loadLibrary进行了详细的分析介绍。需要的朋友可以过来参考下
C语言程序设计期末实训作业,选择题目是做一个**图书信息管理系统**。 这里给出源码,需要实训报告等,请前往文章中github地址下载 2020年3月30日 22:20:19再次修改为免费下载
t532.rar 测试代码 https://blog.csdn.net/wowocpp/article/details/105382257 python 调用 C++ dll 32位 64位 问题 ctypes.cdll.LoadLibrary
Android安卓源码解析,比较详细的分析了Sytem.loadLibrary的源码,对于so文件的dump的点有非常好的借鉴意义
java.lang.UnsatisfiedLinkError: Couldn't load stlport_shared from loader dalvik.system.PathClassLoader: findLibrary returned null at java.lang.Runtime.loadLibrary(Runtime.java:365) at java.lang.System...
OpenCV4.0 需要用到的动态库,如果没有改dll会报错, System.loadLibrary(Core.NATIVE_LIBRARY_NAME);报错提示需要在jdk下有该文件, 本文件存放在/javapath/bin/下, 该文件是64位window系统下使用
at java.lang.System.loadLibrary(System.java:1028) at com.jacob.com.LibraryLoader.loadJacobLibrary(LibraryLoader.java:184) at com.jacob.com.JacobObject.<clinit>(JacobObject.java:107) at MsWordEdit....
System.loadLibrary(*.so的档案名); 例如,Android框架里所提供的MediaPlayer.java类,含指令: java代码: 1. public class MediaPlayer{ 2. static { 3. System.loadLibrary(“media_jni”); 4. } 5. }
gradle管理java项目是很方便,但opencv没有官方的maven ...//关键步骤不能使用System.loadLibrary Mat hello = Mat.zeros(3, 3, CvType.CV_8UC1); System.out.println(hello.dump()); } } 然后就可以为所欲为啦 ^_^
准备工作: 1.编译JnativeCpp 2.将编译出来的libJNativeCpp.so,拷贝到/usr/lib/,同时执行chmod ... System.out.println(getstring.getRetVal()); } } 4.输出结果 this is in test_a... getstring hello .....
android jni详细介绍,包括如下文档: android_jni_javah_...Android技术之JNI和HAL.pdf Android通过JNI调用驱动程序(完全解析实例).doc 由浅入深,让你了解JNI如何在android里使用,也可以顺便了解一下android hal机制.
System.loadLibrary("Sample3"); Sample3 sample = new Sample3(); String[] texts = sample.stringMethod("java编程思想"); for(int i=0;i<texts.length;i++) { texts[i]=new String(texts[i].getBytes("ISO...
示范如何使用 LoadLibrary(...) 和 GetProcAddress(....)调用dll的输出函数.
System.loadLibrary("G711Android"); } catch (UnsatisfiedLinkError ule){ System.out.println("loadLibrary(G711Android),"+ule.getMessage()); } } private static native int linear2ulaw( int pcm_val...
从官网下载的正版免费软件Q-Dir,多窗口资源管理器。当我们要在多个窗口之间来回切换,拖放文件的时候,会发现系统自带的资源管理器有点力不从心, 用这个小工具就可以很好的避免这种尴尬。这个版本是32位Windows...
java.lang.UnsatisfiedLinkError: Couldn't load stlport_shared from loader dalvik.system.PathClassLoader: findLibrary returned null at java.lang.Runtime.loadLibrary(Runtime.java:365) at java.lang....
解决win10操作系统,初始化Eo Webbrowser报错"Failed to resolve LoadLibrary",需要调用eowp.exe,来进行处理,Both EO.Pdf and EO.WebBrowser dynamically create child processes and run browser engine inside ...
下面这个异常,多半是由于没有调用System.loadLibrary("msaoaidsec");导致的,此压缩包包含了OAID的DEMO代码。但是这个版本的初始化还需要证书,所以最好还是使用OAIDSDK提供方给的解决方案来解决,否则会很麻烦。
某些低版本智能电视盒子系统上,APP调用System.loadLibrary会导致卡死的现象,经过定位为gnustl的问题,该示例可以稳定复现出问题
System.loadLibrary(Core.NATIVE_LIBRARY_NAME) ; 设置JVM参数 -Djava.library.path=/yourpath/opencv-3.4.0/build/lib 或只是使用它 # for mac or linux System.loadLibrary( " /yourpath/opencv-3.4.0/build/lib ...