导航:首页 > 编程语言 > java动态链接库

java动态链接库

发布时间:2023-03-11 16:53:29

A. java 调用动态链接库(jni方式调用dll文件)

jni 是由Java调用C/C++的动态链接库 (DLL)。
所以把.class-->.h-->dll ,想法是不正确的,
同时也违背了Jni的初衷。
Dll是由C/C++生成的。

以前的一个项目用到了Java调用C/C++的DLL,所以对这个还算熟悉。
那个dLL是由C++程序员写的,在Microsoft Visual C++ 6.0编辑器中可以生成。然后由Java程序员用JNI来调用DLL里面实现的功能(方法)。

B. 如何为Android,Mac和Windows平台创建Java JNI动态链接库

Android1、下载NDK,并在Eclipse中配置路径:
2、创建一个Android工程hellojni。右键工程,选择Add Native Support自动生成C/C++工程:
3、修改C/C++代码,配置一下Android.mk:
4、点击保存就会自动生成动态链接库libhellojni.so。也可以通过命令ndk-build手动生成。

Windows

1、打开Visual Studio,创建一个Win32工程hellojni:
2、在应用类型中选择DLL:
3、配置头文件和库的路径:
4、点击build就可以生成hellojni.dll。

Mac OS X

1、打开Xcode,创建一个工程hellojni :
2、framework选择STL:
3、在build设置里,配置JavaVM 头文件路径和库路径:
4、点击build就可以生成libhellojni.dylib。

Java工程中如何使用JNI:

1、申明native接口:
public native String stringFromJNI();
public native static void nativePrint();

2、加载动态链接库:
static {
System.loadLibrary("hellojni");
}

C. eclipse中的java工程项目如何引用外部jar包和dll动态链接库

1、引用jar包
绝对路径引用:右键工程-->properties-->Java Build Path-->Libraries-->Add external JARs... ,在弹出的对话框中选择要引入的jar包,OK即可。
相对路径引用:首先在工程目录下,新建一个libs文件夹,将要导入的jar包放入其中,然后右键工程-->properties-->Java Build Path-->Libraries-->Add JARs... ,在弹出的对话框中选择libs文件夹下的jar包即可。
2、引用dll动态链接库
绝对路径引用:右键工程-->properties-->java Build Path-->Source,点开工程,选择Native libraries location....,点击右侧的edit..-->external Folder...,选择要引入的dll文件所在文件夹即可。

相对路径引用:首先在工程目录下,新建一个libs文件夹,将要导入的dll文件包放入其中,右键工程-->properties-->java Build Path-->Source,点开工程,选择Native libraries location....,点击右侧的edit..-->Workspace..,选择libs文件夹即可。

D. java动态链接库连接失败 jvm.dll加载失败

项目中用到 Jpcap 库,这个库引用到一个 C 的链接库文件

链接库文件放到 /usr/lib 下面

以前在别的Linux系统下都运行的好好的

今天部署到一个 Centos 机器上就报错:java.lang.NoClassDefFoundError: Could not initialize class jpcap.JpcapCaptor 和 java.lang.unsatisfiedlinkerror

看了下 JpcapCaptor 类的源码发现里面有加载动态链接库的代码

肯定就是没找到 动态链接库文件了。

1.重新编译库文件 2.把库文件放到项目根目录,等等几番折腾

最后都要绝望的时候了,突然想起 /etc/ld.so.conf

vi 一看还真没有库目录

加上两行
/usr/lib
/usr/local/lib

保存 执行 ldconfig命令 生效

问题就这样解决了。

阅读全文

与java动态链接库相关的资料

热点内容
php社区程序 浏览:976
python现在就业怎么样 浏览:304
php上传目录权限设置 浏览:736
php合同档案管理系统 浏览:366
tshock服务器地址 浏览:877
php解析文件流 浏览:780
服务器机箱铜片有什么用 浏览:969
乐视手机如何使用原生态安卓 浏览:215
dns服务器怎么备份啊 浏览:865
苹果退款app怎么重新购买 浏览:655
U盘cmd检查文件夹成文件 浏览:66
java路径是否存在 浏览:338
新氧app上怎么测脸型 浏览:787
用指令获得命令方块 浏览:427
流星蝴蝶剑怎么输入命令 浏览:681
keil有红叉但是能编译通过 浏览:498
赛拉图的空调压缩机多少钱 浏览:330
linux54 浏览:986
shutdown命令linux 浏览:250
编译的输入 浏览:511