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.
try{
ExtractFromJar("test.dll");
}catch(IOException e) {}
System.load(System.getProperty("java.io.tmpdir") + "/test.dll");
The ExtractFromJar Method
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