`

swig/java

 
阅读更多

摘自  http://www.swig.org/translations/chinese/tutorial.html

 

 /* 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 */
 %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();

 

java文件

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

 

编译运行:

 % swig -java example.i
 % gcc -fpic -c example.c example_wrap.c -I/usr/java/jdk1.4.2/include -I/usr/java/jdk1.4.2/include/linux
 % gcc -shared example.o example_wrap.o -o libexample.so
 % javac main.java
 % java main
 % LD_LIBRARY_PATH=$LD_LIBRARY_PATH:libexample.so所在目录 java main
分享到:
评论

相关推荐

    swig实例java调用c

    `Swig`(Simplified Wrapper and Interface Generator)是一个强大的工具,它允许我们创建接口,使得Java等高级语言能够调用C或C++编写的库。本实例主要讲解如何使用Swig来实现Java调用C代码,并通过DLL动态链接库...

    GDAL在Linux下的编译实现

    编译完成后,在 &lt;gdal-dir&gt;/swig/java 目录下将生成一个 gdal.jar 文件和一些新的文件,其中包括四个含 jni 的 so 文件。 3. GDAL 调用 在调用 GDAL 之前,需要新建一个 Java 项目,名为 GDALTest。然后,需要导入...

    使用swig将C代码转为JAVA接口的例子(Win10平台)

    配置环境变量JAVA_BIN和JAVA_INCLUDE。比如: JAVA_BIN:C:\Program Files\Java\jdk-12.0.2\bin JAVA_INCLUDE:C:\Program Files\Java\jdk-12.0.2\include 进入Examples\java\simple目录,用VS2019打开example.dsp。...

    swig--在java、C#中调用c++写的DLL(以vs2012配置为例)

    `%module testswig`定义了生成的Java/C#模块名称。 然后,使用SWIG命令行工具生成Java和C#的绑定代码: ```bash swig -java -c++ swiginterface.i swig -csharp -c++ swiginterface.i ``` 这将分别生成“testswig...

    windows下gdal的编译和调用

    - 在gdalsrc/swig/java/目录下找到nmake.opt文件,并设置Java_Home变量指向JDK的安装路径。 #### 四、编译执行 1. **启动X64命令提示符**:通过Visual Studio 2010自带的X64命令提示符启动。 2. **切换目录**:...

    ubuntu下java可用的gdal库及使用示例代码

    接着,由于GDAL原生并不支持Java,所以要用到SWIG(Simplified Wrapper and Interface Generator)工具来生成Java接口,使得Java能够调用GDAL的C++函数。 “遥感影像提取元信息和缩略图的示例代码”这部分意味着,...

    SWIG4.0开发手册

    SWIG支持和实验性支持的语言模块涵盖了广泛的高级语言,包括但不限于Python、Perl、Ruby、PHP、Tcl、Java、C#、Objective-C等。对于这些语言,SWIG能够识别相应的语法和构建规则,生成相应的包装代码。文档中提到的...

    java 调用C swig

    java 调用C swig

    cygwin+swig生成Android库并使用的例子

    SWIG是用于生成C/C++与Java或其他脚本语言之间接口的工具。通过SWIG,我们可以轻松地将C/C++函数暴露给Android的Java层。安装SWIG后,需要配置环境变量,以便在Cygwin中使用它。 现在,让我们进入实际的步骤。假设...

    SWIG 源码(C/C++与其他语言的粘合剂)

    支持语言列表中也包括非脚本编译语言,例如C#, Common Lisp (CLISP, Allegro CL, CFFI, UFFI), Java, Modula-3, OCAML以及R,甚至是编译器或者汇编的计划应用(Guile, MzScheme, Chicken)。SWIG普遍应用于创建高级...

    swig-4.0.1.tar.gz

    SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,用于将C和C++代码自动封装成其他编程语言的接口,如Python、Java、Perl、PHP等。`swig-4.0.1.tar.gz`是一个包含SWIG 4.0.1版本源代码的压缩包...

    swig-4.0.2-windows版本安装包

    SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,用于自动构建接口,使得C和C++的库可以被多种高级脚本语言如Python、Perl、Java等调用。在这个"swig-4.0.2-windows版本安装包"中,我们有两个...

    swig4.1.1linux版+windows版

    1. **语言支持**:SWIG支持众多脚本语言,如Python、Java、PHP、JavaScript等,允许开发者将C/C++库无缝集成到这些环境中。 2. **接口自动生成**:SWIG通过分析C/C++头文件来生成所需的接口代码,减少手动编写的工作...

    android ndk swig例子

    Swig(Simplified Wrapper and Interface Generator)则是一个工具,用于自动生成C++、Java等语言之间的接口,使得本地代码能够与Java代码交互。 本示例“android ndk swig例子”显然是一个关于如何在Android项目中...

    Linux环境编译gdal java环境用到的文件

    编译过程中,SWIG会生成Java接口文件,这些文件在GDAL的Java绑定中很重要。 GDAL的Java API允许Java开发者访问GDAL的核心功能,包括读取、写入和处理地理空间数据。这些API包括对栅格数据集、矢量数据集、坐标系统...

    android studio 使用NDK和swig编译c++示例

    而SWIG(Simplified Wrapper and Interface Generator)是一个开源工具,它能帮助我们自动地生成C++与Java之间的绑定代码,使得我们可以轻松地在Java层调用C++的函数。 本文将详细介绍如何在Android Studio项目中...

    SWIG源码及工具

    它使得C或C++的程序可以方便地与多种高级语言,如Python、Java、Perl、Tcl、Ruby等进行交互。SWIG通过解析C或C++的头文件,生成相应的接口代码,从而让这些语言能够调用原生的C/C++函数和对象。 SWIG的核心功能在于...

    SWIG 2.0.11 C/C++接入各种不同语言的接口程序

    SWIG is a compiler that takes C/C++ declarations and creates the wrappers needed to access those declarations from other languages including including Perl, Python, Tcl, Ruby, Guile, and Java....

    swig-3.0.12-windows版本安装包

    SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,它能自动将C或C++库封装为多种高级语言,如Python、Perl、Java等。在本案例中,我们讨论的是SWIG的3.0.12版本针对Windows操作系统的安装过程...

    swig学习资料.doc

    - **3.2.1.2 Java** - **3.2.1.3 Perl** - **3.2.1.4 Python** - **3.2.1.5 TCL** - **3.2.1.6 R** - **3.2.1.7 Ruby** **3.3 SWIG 在 Cygwin 和 MinGW 上的使用** - **3.3.1 构建 swig.exe** SWIG 可以在 ...

Global site tag (gtag.js) - Google Analytics