JavaNative的使用说明
===HelloWorld=== make.sh <syntaxhighlight lang="bash"> #!/bin/sh # openbsd 4.9 # gcc 4.2.1 # openjdk 1.7.0 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. javac HelloWorld.java javah HelloWorld gcc -shared libHelloWorld.c -o libHelloWorld.so java HelloWorld </syntaxhighlight> build.bat <syntaxhighlight lang="text"> :: Microsoft Visual Studio 2012 Visual C++ compiler SET VC = "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC" :: Microsoft Windows SDK for Windows 7 and .NET Framework 4 SET MSDK = "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A" :: Java 1.7.0 update 21 SET JAVA_HOME = "C:\Program Files (x86)\Java\jdk1.7.0_21" javac HelloWorld.java javah HelloWorld %VC%\bin\cl /I"%JAVA_HOME%\include" /I"%JAVA_HOME%\include\win32" /I"%VC%\include" /I"%VC%\lib" /I"%MSDK%\Lib" libHelloWorld.c /Fe"libHelloWorld.dll" /LD java HelloWorld </syntaxhighlight> HelloWorld.java <syntaxhighlight lang="java"> class HelloWorld { private native void print(); public static void main(String[] args) { new HelloWorld().print(); } static{ System.loadLibrary("HelloWorld"); } } </syntaxhighlight> HelloWorld.h <syntaxhighlight lang="c"> /* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class HelloWorld */ #ifndef _Included_HelloWorld #define _Included_HelloWorld #ifdef __cplusplus extern "C" { #endif /* * Class: HelloWorld * Method: print * Signature: ()V */ JNIEXPORT void JNICALL Java_HelloWorld_print (JNIEnv *, jobject); #ifdef __cplusplus } #endif #endif </syntaxhighlight> libHelloWorld.c <syntaxhighlight lang="c"> #include <stdio.h> #include "HelloWorld.h" JNIEXPORT void JNICALL Java_HelloWorld_print(JNIEnv *env, jobject obj) { printf("Hello World!\n"); return; } </syntaxhighlight> chmod +x make.sh<br> ./make.sh