diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/interaction/Cma.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/interaction/Cma.java index 00cca9d..2aeeb27 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/interaction/Cma.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/interaction/Cma.java @@ -3,8 +3,10 @@ package com.shxy.xymanager_service.interaction; public class Cma { static { - System.setProperty("java.library.path", "./libs"); - System.loadLibrary("xympj"); +// System.setProperty("java.library.path", "./libs"); +// System.loadLibrary("xympj"); +// LibLoader.loadLib("xympj.dll"); + System.load("D:\\Project\\JAVAProject\\XyManagerBackend\\libs\\xympj.dll"); initCmaEnv(); } @@ -23,7 +25,7 @@ public class Cma { } } - private static native boolean initCmaEnv(); + public static native boolean initCmaEnv(); public native long initCma(String server, int port); public native void releaseCma(long cma); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/interaction/CmaDLL.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/interaction/CmaDLL.java new file mode 100644 index 0000000..3c22940 --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/interaction/CmaDLL.java @@ -0,0 +1,8 @@ +package com.shxy.xymanager_service.interaction; + +import com.sun.jna.Library; +import com.sun.jna.Native; + +public class CmaDLL implements Library { + CmaDLL INSTANCE = (CmaDLL) Native.loadLibrary("xympj.dll",CmaDLL.class); +} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/interaction/LibLoader.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/interaction/LibLoader.java new file mode 100644 index 0000000..d012984 --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/interaction/LibLoader.java @@ -0,0 +1,29 @@ +package com.shxy.xymanager_service.interaction; + +import org.apache.commons.io.FileUtils; + +import java.io.File; +import java.io.InputStream; + +public class LibLoader { + public static void loadLib(String libName) { + String resourcePath = "/" + libName; + String folderName = System.getProperty("java.io.tmpdir") + "/lib/"; + File folder = new File(folderName); + folder.mkdirs(); + File libFile = new File(folder, libName); + if (libFile.exists()) { + System.load(libFile.getAbsolutePath()); + } else { + try { + InputStream in = LibLoader.class.getResourceAsStream(resourcePath); + FileUtils.copyInputStreamToFile(in, libFile); + in.close(); + System.load(libFile.getAbsolutePath()); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("Failed to load required lib", e); + } + } + } +} \ No newline at end of file