diff --git a/src/main/java-templates-tdlib/it/tdlight/common/utils/LibraryVersion.java b/src/main/java-templates-tdlib/it/tdlight/common/utils/LibraryVersion.java
index e25f4f1..7fdca16 100644
--- a/src/main/java-templates-tdlib/it/tdlight/common/utils/LibraryVersion.java
+++ b/src/main/java-templates-tdlib/it/tdlight/common/utils/LibraryVersion.java
@@ -2,8 +2,8 @@ package it.tdlight.common.utils;
public final class LibraryVersion {
public static final String VERSION = "${project.version}";
public static final String IMPLEMENTATION_NAME = "tdlib";
- public static final Class> LINUX_AMD64_CLASS = it.tdlight.jni.tdlib.linux.amd64.LoadLibrary.class;
- public static final Class> LINUX_AARCH64_CLASS = it.tdlight.jni.tdlib.linux.aarch64.LoadLibrary.class;
- public static final Class> WINDOWS_AMD64_CLASS = it.tdlight.jni.tdlib.win.amd64.LoadLibrary.class;
- public static final Class> OSX_AMD64_CLASS = it.tdlight.jni.tdlib.osx.amd64.LoadLibrary.class;
+ public static final String LINUX_AMD64_CLASS = "it.tdlight.jni.tdlib.linux.amd64.LoadLibrary";
+ public static final String LINUX_AARCH64_CLASS = "it.tdlight.jni.tdlib.linux.aarch64.LoadLibrary";
+ public static final String WINDOWS_AMD64_CLASS = "it.tdlight.jni.tdlib.win.amd64.LoadLibrary";
+ public static final String OSX_AMD64_CLASS = "it.tdlight.jni.tdlib.osx.amd64.LoadLibrary";
}
\ No newline at end of file
diff --git a/src/main/java-templates-tdlight/it/tdlight/common/utils/LibraryVersion.java b/src/main/java-templates-tdlight/it/tdlight/common/utils/LibraryVersion.java
index 8a34052..41c8a7e 100644
--- a/src/main/java-templates-tdlight/it/tdlight/common/utils/LibraryVersion.java
+++ b/src/main/java-templates-tdlight/it/tdlight/common/utils/LibraryVersion.java
@@ -2,8 +2,8 @@ package it.tdlight.common.utils;
public final class LibraryVersion {
public static final String VERSION = "${project.version}";
public static final String IMPLEMENTATION_NAME = "tdlight";
- public static final Class> LINUX_AMD64_CLASS = it.tdlight.jni.tdlight.linux.amd64.LoadLibrary.class;
- public static final Class> LINUX_AARCH64_CLASS = it.tdlight.jni.tdlight.linux.aarch64.LoadLibrary.class;
- public static final Class> WINDOWS_AMD64_CLASS = it.tdlight.jni.tdlight.win.amd64.LoadLibrary.class;
- public static final Class> OSX_AMD64_CLASS = it.tdlight.jni.tdlight.osx.amd64.LoadLibrary.class;
+ public static final String LINUX_AMD64_CLASS = "it.tdlight.jni.tdlight.linux.amd64.LoadLibrary";
+ public static final String LINUX_AARCH64_CLASS = "it.tdlight.jni.tdlight.linux.aarch64.LoadLibrary";
+ public static final String WINDOWS_AMD64_CLASS = "it.tdlight.jni.tdlight.win.amd64.LoadLibrary";
+ public static final String OSX_AMD64_CLASS = "it.tdlight.jni.tdlight.osx.amd64.LoadLibrary";
}
\ No newline at end of file
diff --git a/src/main/java/it/tdlight/common/utils/LoadLibrary.java b/src/main/java/it/tdlight/common/utils/LoadLibrary.java
index a89f4fb..8a22c92 100644
--- a/src/main/java/it/tdlight/common/utils/LoadLibrary.java
+++ b/src/main/java/it/tdlight/common/utils/LoadLibrary.java
@@ -24,6 +24,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.concurrent.ConcurrentHashMap;
+import java.lang.reflect.InvocationTargetException;
/**
* The class to load the libraries needed to run Tdlib
@@ -104,29 +105,49 @@ public class LoadLibrary {
case linux:
switch (arch) {
case amd64:
- classForResource = LibraryVersion.LINUX_AMD64_CLASS;
+ try {
+ classForResource = Class.forName(LibraryVersion.LINUX_AMD64_CLASS);
+ } catch (ClassNotFoundException e) {
+ // not found
+ }
break;
case aarch64:
- classForResource = LibraryVersion.LINUX_AARCH64_CLASS;
+ try {
+ classForResource = Class.forName(LibraryVersion.LINUX_AARCH64_CLASS);
+ } catch (ClassNotFoundException e) {
+ // not found
+ }
break;
}
break;
case osx:
if (arch == Arch.amd64) {
- classForResource = LibraryVersion.OSX_AMD64_CLASS;
+ try {
+ classForResource = Class.forName(LibraryVersion.OSX_AMD64_CLASS);
+ } catch (ClassNotFoundException e) {
+ // not found
+ }
}
break;
case win:
if (arch == Arch.amd64) {
- classForResource = LibraryVersion.WINDOWS_AMD64_CLASS;
+ try {
+ classForResource = Class.forName(LibraryVersion.WINDOWS_AMD64_CLASS);
+ } catch (ClassNotFoundException e) {
+ // not found
+ }
}
break;
}
if (classForResource == null) {
throw new IOException("Native libraries for platform " + os + "-" + arch + " not found!");
}
- String libPath = createPath("libs", os.name(), arch.name(), libname) + getExt(os);
- InputStream libInputStream = classForResource.getResourceAsStream(libPath);
+ InputStream libInputStream;
+ try {
+ libInputStream = (InputStream) this.getClass().getDeclaredMethod("getLibraryAsStream").invoke(InputStream.class);
+ } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
+ throw new IOException("Native libraries for platform " + os + "-" + arch + " not found!", e);
+ }
if (Files.notExists(tempFile)) {
Files.copy(libInputStream, tempFile);
}
diff --git a/tdlib/pom.xml b/tdlib/pom.xml
index 6df0544..7dd22d4 100644
--- a/tdlib/pom.xml
+++ b/tdlib/pom.xml
@@ -8,7 +8,7 @@
UTF-8
0-SNAPSHOT
- 3.0.123
+ 3.0.125
diff --git a/tdlight/pom.xml b/tdlight/pom.xml
index dfe6aa2..087550a 100644
--- a/tdlight/pom.xml
+++ b/tdlight/pom.xml
@@ -8,7 +8,7 @@
UTF-8
0-SNAPSHOT
- 3.0.123
+ 3.0.125