SWIG/Examples/java/simple/

Simple Java Example

This example illustrates how you can hook Java to a very simple C program containing a function and a global variable.

The C Code

Suppose you have the following C code:
/* File : example.c */

/* A global variable */
double Foo = 3.0;

/* Compute the greatest common divisor of positive integers */
int gcd(int x, int y) {
  int g;
  g = y;
  while (x > 0) {
    g = x;
    x = y % x;
    y = g;
  }
  return g;
}

The SWIG interface

Here is a simple SWIG interface file:
/* File: example.i */
%module example

extern int gcd(int x, int y);
extern double Foo;

Compilation

  1. swig -java example.i

  2. Compile example_wrap.c and example.c to create the extension libexample.so (unix).

Using the extension

Click here to see a program that calls our C functions from Java.

Compile the java files example.java and runme.java to create the class files example.class and runme.class before running runme in the JVM. Ensure that the libexample.so file is in your LD_LIBRARY_PATH before running. For example:

export LD_LIBRARY_PATH=. #ksh 
javac *.java
java runme

Key points