Linuxüzerinde paylaşılan kitaplıkları kullanma örneği

Bu örnek, Linux® sistemlerindeki bir Java™ uygulamasıyla yerel paylaşılan kitaplıkları kullanma sürecinden geçer.

Yordam

  1. Ö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( );
          }
       }
    }
  2. Compile Sample.java.
    javac Sample.java
  3. Yerel kod için bir üstbilgi dosyası oluşturmak üzere javah öğesini kullanın.
    javah Sample
  4. 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" );
    }
  5. 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
  6. Ö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.