Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / Java / JavaSE

Java Native Interface Auto Loader for JAR Deployment

3.50/5 (2 votes)
16 May 2008GPL3 1  
In this tutorial, I will try to explain how to use JNI auto loader for JAR file.

Introduction

The Java Native Interface Auto Loader is a convenience solution for loading JNI dynamic link library from JAR file.

Using the Code

ExtractFromJar is a method which can auto extract the resource as a JNI library. After executing the autoloader, you can enjoy the JNI library.

Java
try{
    ExtractFromJar("test.dll");
}catch(IOException e) {}
         
System.load(System.getProperty("java.io.tmpdir") + "/test.dll");

The ExtractFromJar Method

Java
public void ExtractFromJar(String name) 
throws IOException {
    File directory = new File(System.getProperty("java.io.tmpdir"));
    if(!directory.exists())
        directory.mkdirs();
    File libFile = new File(directory, name);
    if(libFile.exists())
        libFile.delete();
    InputStream in = getClass().getResourceAsStream("/" + name);
    BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(libFile));
    byte buffer[] = new byte[1024];
    int len;
    for(int sum = 0; (len = in.read(buffer)) > 0; sum += len)
        out.write(buffer, 0, len);
    in.close();
    out.close();
}

History

  • 17th May, 2008: Initial post

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)