一.将Matlab算法程序转成Jar包
- 执行 deploytool 命令进行打包

- 选择Library Compiler

- 执行完三步后 执行 Package

- 打开生成目录:for_redistribution_files_only就可以看到Jar包

二.Java动态加载Matlab Jar
- 加载javabuilder.jar包
2.通过反射动态加载Jar调用Matlab算法
import cn.hutool.core.lang.JarClassLoader;
import cn.hutool.core.util.ClassLoaderUtil;
import java.io.File;
import java.lang.reflect.Method;
import java.util.List;
public class MatlabClassLoaderUtil {
public static void dynamicLoadMethod(String filePath,String className,String methodName,Object... params) throws Exception {
File file = new File(filePath);
JarClassLoader jarClassLoader = ClassLoaderUtil.getJarClassLoader(file);
Class<?> matlab2JavaClass = jarClassLoader.loadClass(className);
Object instance = matlab2JavaClass.newInstance();
Method hellomatlab = matlab2JavaClass.getDeclaredMethod(methodName,Object [] .class);
Object [] finalParams= new Object[]{params};
hellomatlab.invoke(instance,finalParams);
}
public static void main(String[] args) throws Exception {
long begin = System.currentTimeMillis();
MatlabClassLoaderUtil.dynamicLoadMethod("D:\Matlab\java\demo\src\main\resources\hello.jar","hello.Class1","hellomatlab");
long end = System.currentTimeMillis();
System.out.println(end-begin);
}
}