• Demo Swig


    演示使用swig工具创建c语言的java接口,生成.so库和java接口文件。

    在此之前先要安装swig,安装方法:sudo apt-get install swig 

    1.使用eclipse创建工程。

      

    2.创建包名。

    3.在包中创建c文件和swig接口文件。

    文件内容:

    example.c

     /* File : example.c */
     
     #include <time.h>
     double My_variable = 3.0;
     
     int fact(int n) {
         if (n <= 1) return 1;
         else return n*fact(n-1);
     }
     
     int my_mod(int x, int y) {
         return (x%y);
     }
     	
     char *get_time()
     {
         time_t ltime;
         time(&ltime);
         return ctime(&ltime);
     }
    

      

    example.i

     /* example.i */
     %module example
     %{
     /* Put header files here or function declarations like below */
     extern double My_variable;
     extern int fact(int n);
     extern int my_mod(int x, int y);
     extern char *get_time();
     %}
     
     extern double My_variable;
     extern int fact(int n);
     extern int my_mod(int x, int y);
     extern char *get_time();
    

      

    4.使用命令行创建

       

    /usr/lib/jvm/default-java/include/  是jni.h 的路径

    /usr/lib/jvm/default-java/include/linux  是jni_mb.h 的路径

    命令运行成功之后 .so 文件已经生成了。然后刷新一下eclipse中的工程。如下(生成的java代码没有加package,自己加上):

      

    将libexample.so 复制到根目录下边,然后创建测试入口文件 Main.java

    目录结构如下:

      

    Main文件代码:

      

    package com.woody;
    
    public class Main {
    
        static {
            System.loadLibrary("example");
        }
    
        public static void main(String[] args) {
            System.out.println(example.getMy_variable());
            System.out.println(example.fact(5));
            System.out.println(example.get_time());
    
        }
    
    }
    

      

    Run it !

    out put :

    3.0
    120
    Fri Feb 28 16:55:47 2014

    运行成功 :)

    资料:

    http://www.swig.org/Doc1.3/Java.html

      

      

  • 相关阅读:
    javascript 时间与时间戳的转换
    javascript 判断对象的内置类型
    javascript 动态脚本添加
    javascript select标签的操作
    javascript canvas画订单
    css 移动端图片等比显示处理
    FastDFS分布式文件系统
    欧拉回路--模板
    tarjan求双联通分量--POJ 1523 +P2860 [USACO06JAN]Redundant Paths G
    tarjan求割点和割边
  • 原文地址:https://www.cnblogs.com/ihou/p/3573967.html
Copyright © 2020-2023  润新知