diff --git a/src/main/java/io/github/treesitter/jtreesitter/internal/ChainedLibraryLookup.java b/src/main/java/io/github/treesitter/jtreesitter/internal/ChainedLibraryLookup.java index ac03f19..b89cd87 100644 --- a/src/main/java/io/github/treesitter/jtreesitter/internal/ChainedLibraryLookup.java +++ b/src/main/java/io/github/treesitter/jtreesitter/internal/ChainedLibraryLookup.java @@ -28,8 +28,14 @@ private static SymbolLookup findLibrary(Arena arena) { try { var library = System.mapLibraryName("tree-sitter"); return SymbolLookup.libraryLookup(library, arena); - } catch (IllegalArgumentException e) { - return SymbolLookup.loaderLookup(); + } catch (IllegalArgumentException ex1) { + try { + System.loadLibrary("tree-sitter"); + return SymbolLookup.loaderLookup(); + } catch (UnsatisfiedLinkError ex2) { + ex1.addSuppressed(ex2); + throw ex1; + } } } } diff --git a/src/main/java/io/github/treesitter/jtreesitter/package-info.java b/src/main/java/io/github/treesitter/jtreesitter/package-info.java index c2f1282..a375a9e 100644 --- a/src/main/java/io/github/treesitter/jtreesitter/package-info.java +++ b/src/main/java/io/github/treesitter/jtreesitter/package-info.java @@ -43,10 +43,9 @@ * SymbolLookup.libraryLookup(String, Arena)}. * *
  • - * The libraries can be loaded manually by calling - * {@link java.lang.System#loadLibrary(String) System.loadLibrary(String)}, - * if the library is installed in {@systemProperty java.library.path}, - * or {@link java.lang.System#load(String) System.load(String)}. + * If the libraries are installed in {@systemProperty java.library.path} instead, + * they will be loaded automatically by {@link java.lang.foreign.SymbolLookup#loaderLookup() + * SymbolLookup.loaderLookup()}. *
  • *
  • * The libraries can be loaded manually by registering a custom implementation of