依赖包(附件有下载):
包名 |
类型 |
操作系统 |
luajava-1.1.jar |
jar |
ALL |
libluajava-1.1.so |
.so |
linux |
luajava-1.1.dll |
.dll |
windows |
windows: 将luajava-1.1.dll拷贝到java.libary.path目录(通过System.getProperty("java.library.path")可以知道)
linux: 将libluajava-1.1.so拷贝到java.libary.path目录(通过System.getProperty("java.library.path")可以知道)
如果linux有问题,则按以下操作重新编译.so文件
1.编译&安装Lua tar -zxvf lua-5.1.5.tar.gz cd lua-5.1.5 make linux install 注:64位系统需要先编辑src/Makefile,在CFLAGS上添加-fPIC。
2.编译与安装Luajava tar -zxvf luajava-1.1.tar.gz cd luajava-1.1 修改 config文件,添加JAVA_HOME=/broadtech/javaweb/jdk1.6.0_25 make
3.部署。 将编译好的libluajava-1.1.so拷贝到java.libary.path目录(通过System.getProperty("java.library.path")可以知道), luajava-1.1.jar拷贝到$JAVA_HOME\jre\lib\ext目录
4、重启项目
注:LuaJava1.1缺少了JNIEXPORT void JNICALL Java_org_keplerproject_luajava_LuaState__1pushInteger (JNIEnv * env , jobject jobj , jobject cptr , jint number) 方法的实现,编译前可编辑src/c/luajava.c加入以下代码实现再make
-
-
-
-
-
- JNIEXPORT void JNICALL Java_org_keplerproject_luajava_LuaState__1pushInteger
- (JNIEnv * env , jobject jobj , jobject cptr , jint number)
- {
- lua_State * L = getStateFromCPtr( env , cptr );
-
- lua_pushinteger( L, ( lua_Integer ) number );
- }
LuaUtil.java
-
-
-
-
-
- public class LuaUtil {
- public static List<String> PUBLIC_LUA_FILES = new ArrayList<String>();
- public static Logger logger = Logger.getLogger(LuaUtil.class);
-
- static {
-
-
- }
-
-
-
-
- public static String execLuaFunc(String lua,String funcName,String value){
-
- logger.debug("java.library.path:"+System.getProperty("java.library.path"));
-
- LuaState L = LuaStateFactory.newLuaState();
-
- L.openLibs();
-
-
- if(!PUBLIC_LUA_FILES.isEmpty()){
- for(int i=0;i<PUBLIC_LUA_FILES.size();i++){
- L.LdoFile(PUBLIC_LUA_FILES.get(i));
- }
- }
-
-
- L.LdoString(lua);
-
- L.getField(LuaState.LUA_GLOBALSINDEX, funcName);
-
- L.pushString(value);
-
-
- L.call(1, 1);
-
-
- L.setField(LuaState.LUA_GLOBALSINDEX, "RESULT");
- LuaObject lobj = L.getLuaObject("RESULT");
-
-
- String res = lobj.getString();
- L.close();
-
- if(res == null) return "";
- return res;
- }
- }
|
请发表评论