java跨平台

来源:互联网 发布:java log4j 多线程 编辑:程序博客网 时间:2024/06/05 12:10

跨语言、跨平台调用的难点,就是不同语言之间数据类型不一致。

使用JNI,你必须手工用C写一个动态链接库,在C语言中映射java的数据类型。
使用JNA,由于它自身了提供了一个动态的c语言编写的转发器,可以自动实现java和C的数据类型映射,你不再需要编写C动态链接库

使用JNA例子:
1、下载jna.jar包
2、在java项目中引入该jar包
3、创建一个类
import com.sun.jna.Library;

import com.sun.jna.Native;

import com.sun.jna.Platform;

 

/** Simple example of native library declaration and usage. */

public class HelloWorld {

 

    public interface CLibrary extends Library {

        CLibrary INSTANCE = (CLibrary)

            Native.loadLibrary((Platform.isWindows() ? "msvcrt" : "c"),

                               CLibrary.class);

   

        void printf(String format, Object... args);

    }

    public static void main(String[] args) {

        CLibrary.INSTANCE.printf("Hello, World/n");

        for (int i=0;i < args.length;i++) {

            CLibrary.INSTANCE.printf("Argument %d: %s/n", i, args[i]);

        }

    }

}

 

4、执行可以在控制台中看到输出
Hello, World
 

原创粉丝点击