/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/java/simple/index.html
108 строк
2 KB
William S Fulton
rename java run tests from main to runme for consistency across the languages
18 ноя 2008, 01:47
18 ноя 2008, 01:47
9cf5256
Код
Авторство
О чём код?
<html> <head> <title>SWIG:Examples:java:simple</title> </head> <body bgcolor="#ffffff"> <tt>SWIG/Examples/java/simple/</tt> <hr> <H2>Simple Java Example</H2> <p> This example illustrates how you can hook Java to a very simple C program containing a function and a global variable. <h2>The C Code</h2> Suppose you have the following C code: <blockquote> <pre> /* 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; } </pre> </blockquote> <h2>The SWIG interface</h2> Here is a simple SWIG interface file: <blockquote> <pre> /* File: example.i */ %module example extern int gcd(int x, int y); extern double Foo; </pre> </blockquote> <h2>Compilation</h2> <ol> <li><tt>swig -java <a href="example.i">example.i</a></tt> <p> <li>Compile <tt><a href="example_wrap.c">example_wrap.c</a></tt> and <tt><a href="example.c">example.c</a></tt> to create the extension <tt>libexample.so (unix)</tt>. </ol> <h2>Using the extension</h2> Click <a href="runme.java">here</a> to see a program that calls our C functions from Java. <p> Compile the java files <tt><a href="example.java">example.java</a></tt> and <tt><a href="runme.java">runme.java</a></tt> 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: <blockquote> <pre> export LD_LIBRARY_PATH=. #ksh javac *.java java runme </pre> </blockquote> <h2>Key points</h2> <ul> <li>Use the <tt>loadLibrary</tt> statement from java to load and access the generated java classes. For example: <blockquote> <pre> System.loadLibrary("example"); </pre> </blockquote> <li>C functions work just like Java functions. For example: <blockquote> <pre> int g = example.gcd(42,105); </pre> </blockquote> <li>C global variables are accessed through get and set functions in the module class. For example: <blockquote> <pre> double a = example.get_Foo(); example.set_Foo(20.0); </pre> </blockquote> </ul> <hr> </body> </html>