Java调用Lua脚本(LuaJava使用、安装及Linux安装编译)

阅读更多
依赖包(附件有下载):
包名 类型 操作系统
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

/************************************************************************
*   JNI Called function
*      Lua Exported Function
************************************************************************/
 
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
/**
 * 调用Lua脚本
 * @author chamcon
 * @date 2013-11-07 15:58:48
 */
public class LuaUtil {
	public static List PUBLIC_LUA_FILES = new ArrayList();
	public static Logger logger = Logger.getLogger(LuaUtil.class);
	
	static {
		//配置公共函数lua文件
		//PUBLIC_LUA_FILES.add("");
	}
	
	/**
	 * 执行Lua脚本
	 */
	public static String execLuaFunc(String lua,String funcName,String value){
		//依赖库文件要放到java.library.path下
		logger.debug("java.library.path:"+System.getProperty("java.library.path"));
		
		LuaState L = LuaStateFactory.newLuaState();
		// 加载lua标准库,否则一些lua基本函数无法使用
		L.openLibs();
		
		//加载公共函数文件
		if(!PUBLIC_LUA_FILES.isEmpty()){
			for(int i=0;i 
 
本文链接: http://chamcon.iteye.com/blog/1972995
参考:http://www.chinasb.org/archives/2013/06/5115.shtml
  • depend_libary.rar (490 KB)
  • 下载次数: 244

你可能感兴趣的:(lua,java,linux,脚本)