diff --git a/pom.xml b/pom.xml
index 47d0d35..20cb057 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
io.github.metarank
lightgbm4j
- 3.3.2-2
+ 3.3.2-3
LightGBM4j: Java LightGBM wrapper
A high-level wrapper for LightGBM toolkit
diff --git a/src/main/java/io/github/metarank/lightgbm4j/LGBMBooster.java b/src/main/java/io/github/metarank/lightgbm4j/LGBMBooster.java
index 781983a..b6d0c74 100644
--- a/src/main/java/io/github/metarank/lightgbm4j/LGBMBooster.java
+++ b/src/main/java/io/github/metarank/lightgbm4j/LGBMBooster.java
@@ -43,12 +43,18 @@ public static boolean isNativeLoaded() {
public synchronized static void loadNative() throws IOException {
if (!nativeLoaded) {
String os = System.getProperty("os.name");
+ String arch = System.getProperty("os.arch", "generic").toLowerCase(Locale.ENGLISH);
if (os.startsWith("Linux") || os.startsWith("LINUX")) {
- loadNative("linux/x86_64/lib_lightgbm.so", "lib_lightgbm.so");
- loadNative("linux/x86_64/lib_lightgbm_swig.so", "lib_lightgbm_swig.so");
- nativeLoaded = true;
+ if (arch.startsWith("amd64") || arch.startsWith("x86_64")) {
+ loadNative("linux/x86_64/lib_lightgbm.so", "lib_lightgbm.so");
+ loadNative("linux/x86_64/lib_lightgbm_swig.so", "lib_lightgbm_swig.so");
+ nativeLoaded = true;
+ } else if (arch.startsWith("aarch64") || arch.startsWith("arm64")) {
+ loadNative("linux/aarch64/lib_lightgbm.so", "lib_lightgbm.so");
+ loadNative("linux/aarch64/lib_lightgbm_swig.so", "lib_lightgbm_swig.so");
+ nativeLoaded = true;
+ }
} else if (os.startsWith("Mac")) {
- String arch = System.getProperty("os.arch", "generic").toLowerCase(Locale.ENGLISH);
if (arch.startsWith("amd64") || arch.startsWith("x86_64")) {
loadNative("osx/x86_64/lib_lightgbm.dylib", "lib_lightgbm.dylib");
loadNative("osx/x86_64/lib_lightgbm_swig.dylib", "lib_lightgbm_swig.dylib");
diff --git a/src/main/resources/linux/aarch64/lib_lightgbm.so b/src/main/resources/linux/aarch64/lib_lightgbm.so
new file mode 100755
index 0000000..d4599f7
--- /dev/null
+++ b/src/main/resources/linux/aarch64/lib_lightgbm.so
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d7bdfd307344bb3872dfcb229a00b83c9f80ddf8ec70258cd43cb12c7a05ba68
+size 4625288
diff --git a/src/main/resources/linux/aarch64/lib_lightgbm_swig.so b/src/main/resources/linux/aarch64/lib_lightgbm_swig.so
new file mode 100755
index 0000000..61ce402
--- /dev/null
+++ b/src/main/resources/linux/aarch64/lib_lightgbm_swig.so
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:324222214c30cbb511473933944c053b6879e7071bff68629dd5b0a1afa55145
+size 141344