Class NativeUtil

java.lang.Object
com.github.weisj.darklaf.platform.NativeUtil

public final class NativeUtil extends Object
A simple library class which helps with loading dynamic libraries stored in the JAR archive. These libraries usually contain implementation of some methods in native code (using JNI - Java Native Interface).
See Also:
http://adamheinrich.com/blog/2012/how-to-load-native-jni-library-from-jar, https://github.com/adamheinrich/native-utils
  • Field Details

  • Method Details

    • loadLibraryFromJarWithExtraResources

      public static void loadLibraryFromJarWithExtraResources(String path, List<NativeUtil.Resource> resources) throws IOException
      Loads library from current JAR archive

      The file from JAR is copied into system temporary directory and then loaded. The temporary file is deleted after exiting. Method uses String as filename because the pathname is "abstract", not system-dependent.

      Parameters:
      path - The path of file inside JAR as absolute path (beginning with '/'), e.g. /package/File.ext
      Throws:
      IOException - If temporary file creation or read/write operation fails
      IllegalArgumentException - If source file (param path) does not exist
      IllegalArgumentException - If the path is not absolute or if the filename is shorter than three characters (restriction of File.createTempFile(java.lang.String, java.lang.String)).
      FileNotFoundException - If the file could not be found inside the JAR.
    • loadLibraryFromJar

      public static void loadLibraryFromJar(String path) throws IOException
      Loads library from current JAR archive

      The file from JAR is copied into system temporary directory and then loaded. The temporary file is deleted after exiting. Method uses String as filename because the pathname is "abstract", not system-dependent.

      Parameters:
      path - The path of file inside JAR as absolute path (beginning with '/'), e.g. /package/File.ext
      Throws:
      IOException - If temporary file creation or read/write operation fails
      IllegalArgumentException - If source file (param path) does not exist
      IllegalArgumentException - If the path is not absolute or if the filename is shorter than three characters (restriction of File.createTempFile(java.lang.String, java.lang.String)).
      FileNotFoundException - If the file could not be found inside the JAR.