JNI调用本地库 打包后的使用dll的方法 [转载]

本文介绍了在Java程序中使用System.loadLibrary与System.load两种方法来加载本地库的过程。重点讲解了System.loadLibrary如何从默认路径加载DLL文件,并讨论了如何通过设置java.library.path来指定搜索路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.inonit.com/cygwin/jni/helloWorld/load.html

There are two different ways to load a native library into a running Java program: System.loadLibrary(String) and System.load(String). The System.loadLibrary method allows us to load a library from the "default" path. System.load allows us to load a library from anywhere via its absolute path. First, System.loadLibrary. We'll use System.loadLibrary for our example because most other examples use it, and because we're doing all of our work in one directory. When using System.loadLibrary, the only thing we specify is the name of the DLL file we want. The JVM will search for it in the "Java library path." This is a path which is given by the java.library.path system property (and hence can be altered on the java.exe command line using the -D option). The default value of this appears to be related to the Windows path, though it appears to be somewhat scrambled, and I'm not quite sure how or why. In other words, I'm not sure how the Windows JVM creates the initial value of java.library.path. This is the default on my system: java.library.path=C:/WINNT/system32;.;C:/WINNT/System32;C:/WINNT;c:/applications/asc/pervasive/BIN;c:/cygwin/bin; C:/WINNT/system32;C:/WINNT;C:/WINNT/System32/Wbem;/win32 C:/>echo %PATH% c:/applications/asc/pervasive/BIN;c:/cygwin/bin;C:/WINNT/system32;C:/WINNT;C:/WINNT/System32/Wbem;/win32Note that the current directory is inserted into the PATH; I believe that this is something that Windows does by default. I am going to execute the program from the directory in which HelloWorld.dll was created, so I won't have to mess with java.library.path. One could also use command-line options to alter java.library.path or simply copy the DLL into one of the Windows directories.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值