「java动态链接库文件」如何生成动态链接库

博主:adminadmin 2023-01-17 00:06:06 399

本篇文章给大家谈谈java动态链接库文件,以及如何生成动态链接库对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何为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");

}

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里面实现的功能(方法)。

java 加载动态链接库怎么使用相对路径

java 加载动态链接库使用相对路径一般是不可以直接从jar文件中加载目标dll文件,需要分两步:

1、从jar中拷贝dll文件

public static void loadJarDll(String name) throws IOException {

InputStream in = MyClass.class.getResourceAsStream(name);

byte[] buffer = new byte[1024];

int read = -1;

File temp = File.createTempFile(name, "");

FileOutputStream fos = new FileOutputStream(temp);

while((read = in.read(buffer)) != -1) {

fos.write(buffer, 0, read);

}

fos.close();

in.close();

System.load(temp.getAbsolutePath());

}

2、创建dll所在的相对路径,用临时了路径过度:

ArrayListString bins = new ArrayListString(){{

add("/nm/metadata/bin/dependence1.dll");

add("/nm/metadata/bin/dependence2.dll");

add("/nm/metadata/bin/dependence3.dll");

add("/nm/metadata/bin/dependence4.dll");

add("/nm/metadata/bin/jniBin.dll");

}};

new File(new File(System.getProperty("java.io.tmpdir")), name)

关于java动态链接库文件和如何生成动态链接库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。