From d145411aa73d4226cea535f71707503048de8a82 Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Thu, 29 Oct 2020 13:39:16 +0100 Subject: [PATCH] New loadlibrary method --- .../cpu_architecture_name/LoadLibrary.java | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/tdlight/jni/implementation_name/operating_system_name/cpu_architecture_name/LoadLibrary.java b/src/main/java/it/tdlight/jni/implementation_name/operating_system_name/cpu_architecture_name/LoadLibrary.java index 6fe2d01..0264896 100644 --- a/src/main/java/it/tdlight/jni/implementation_name/operating_system_name/cpu_architecture_name/LoadLibrary.java +++ b/src/main/java/it/tdlight/jni/implementation_name/operating_system_name/cpu_architecture_name/LoadLibrary.java @@ -1,9 +1,35 @@ package it.tdlight.jni.implementation_name.operating_system_name.cpu_architecture_name; import java.lang.ClassLoader; +import java.io.InputStream; +import java.io.File; public class LoadLibrary { - public static ClassLoader getClassLoader() { - return LoadLibrary.class.getClassLoader(); + public static InputStream getLibraryAsStream() { + return LoadLibrary.class.getResourceAsStream("libs" + File.separatorChar + getOsName() + File.separatorChar + getArchName() + File.separatorChar + getFileName() + getExtension()); + } + + private static String getOsName() { + return LoadLibrary.class.getPackageName().split("\\.")[4]; + } + + private static String getArchName() { + return LoadLibrary.class.getPackageName().split("\\.")[5]; + } + + private static String getFileName() { + return "tdjni"; + } + + private static String getExtension() { + switch (getOsName()) { + case "win": + return ".dll"; + case "osx": + return ".dylib"; + case "linux": + default: + return ".so"; + } } }