Bu örnek, Linux® sistemlerindeki bir Java™ uygulamasıyla yerel paylaşılan kitaplıkları kullanma sürecinden geçer.
Yordam
- Örnek bir uygulama oluşturun, Sample.java.
public class Sample
{
public native void printFromNative( );
public static void main( String[] args )
{
Sample sample = new Sample( );
sample.printFromNative( );
}
static
{
try
{
System.loadLibrary( "Sample" );
}
catch ( Exception e )
{
System.out.println( "ERROR: Unable to load libSample.so");
e.printStackTrace( );
}
}
}
- Compile Sample.java.
- Yerel kod için bir üstbilgi dosyası oluşturmak üzere javah öğesini kullanın.
- Sample.cadlı bir dosya oluşturun.
#include <stdio.h>
#include "Sample.h"
JNIEXPORT void JNICALL Java_Sample_printFromNative( JNIEnv * env, jobject obj )
{
printf( "Printing from native\n" );
}
- Sample.c derlemesi ve ardından bağlantı ve Java 'dan dinamik olarak çağrılabilen bir paylaşılan kitaplığa bağlan ve bağ tanımlanmalıdır.
gcc -I<java_home>/include -o libSample.so -shared Sample.c
- Örnek sınıfı çalıştırın.
LD_LIBRARY_PATH=. java Sample
ya da
java -Djava.library.path=. Sample
Program çıkış yapacak:
Printing from native
Sonuçlar
Artık, Java uygulamalarından yerel paylaşılan kitaplıklara erişmek için aynı çerçeveyi kullanabilmeniz gerekir.