springBoot项目中遇到了lua脚本找不到javaclass问题 的解决方法
借鉴 https://blog.csdn.net/qq_21491871/article/details/118883560
public class JsePlatformCopy extends JsePlatform {
public static Globals getGlobals() {
Globals globals = new Globals();
globals.load(new JseBaseLib());
globals.load(new PackageLib());
globals.load(new Bit32Lib());
globals.load(new TableLib());
globals.load(new StringLib());
globals.load(new CoroutineLib());
globals.load(new JseMathLib());
globals.load(new JseIoLib());
globals.load(new JseOsLib());
globals.load(new LuajavaLib());
globals.load(new LuajavaLibCopy ());
LoadState.install(globals);
LuaC.install(globals);
return globals;
}
}
public class LuajavaLibCopy extends LuajavaLib {
public LuajavaLibFix() {}
@Override
protected Class classForName(String name) throws ClassNotFoundException {
return Class.forName(name, true, Thread.currentThread().getContextClassLoader());
}
}
lua调用
//解析的脚本文件
String luaExpress = LUA_EXPRESSION.replace(IExpressionManage.PLACEHOLDER, expression);
Globals globals = JsePlatformCopy.getGlobals();
LuaValue call = globals.load(luaExpress);
LuaValue call = call .call();
lua脚本中的调用
luajava.newInstance(“cn.hsa.fas.nw.finlacct.config.LuaToBoBridge”);