luajit绑定到java,linux和windos64位编译
2017-12-01 10:57
302 查看
luajava是java语言通过jni调用C层luajit,64位的java不能加载32位的so或者dll,因此必须编译成64位的才能使用。这里是整合好的资源,下载后可以直接编译:http://download.csdn.net/download/juy19901128/10140352
windows:
1 进入你vs的安装目录,如:E:\DevelopSoftware\vs2012\VC
2 在VC目录下有一个vcvarsall.bat脚本文件
3 打开CMD,把脚本文件拖入到里面,输入 amd64参数,如:E:\DevelopSoftware\vs2012\VC\vcvarsall.bat amd64
4 现在你已经有了编译64位环境,CD进入上面下载的代码Luajit-2.0.3/src目录
5 把msvcbuild.bat拖入到dos或者手动输入,如:C:\Users\Administrator\Desktop\pak\luajava-master\LuaJIT-2.0.3\src\msvcbuild.bat
6 等一会儿就会出现=== Successfully built LuaJIT for Windows/x64 ===,这个表示64位的编译成功
7 进入代码的根目录, 输入nmake -f nmake -f Makefile.win
如果成功会出现
------------------
Build Complete
------------------
编译成功会出现一个jar和一个dll
否则查看出错位置,一般是java环境没有配置,再就是config.win看下是否luajit的路径错了
linux:
1 进入代码的Luajit-2.0.3/src目录,修改makefile文件,添加XCFLAGS=-fPIC
2 进入Luajit-2.0.3目录,输入make,系统会自动判断并生成对应的64位或者32位
3 成功后,进入代码根目录,输入make
如果成功会出现
------------------
Build Complete
------------------
否则查看出错位置,一般是java环境没有配置,再就是config看下是否luajit的路径错了
注意:在java代码中我已经把luastate的加载lib代码去掉
还有jni中C-》java的调用,其中的类加载层级关系。
最后附加lua到java的日志打印函数:
if (Constants.isDebug()) {
JavaFunction pf = new JavaFunction(L) {
@Override
public int execute() throws LuaException {
int top = L.getTop();
for (int i = 2; i <= top; i++) {
LuaObject obj = getParam(i);
if (obj != null) {
if (i>2) System.out.print( '\t' );
System.out.print(obj.toString());
}
}
if (top >= 2) {
System.out.println();
}
return 0;
}
};
pf.register("print");
L.pushJavaFunction(pf);
}
有需要学习的可以发我邮件或者加我QQ:329137445
windows:
1 进入你vs的安装目录,如:E:\DevelopSoftware\vs2012\VC
2 在VC目录下有一个vcvarsall.bat脚本文件
3 打开CMD,把脚本文件拖入到里面,输入 amd64参数,如:E:\DevelopSoftware\vs2012\VC\vcvarsall.bat amd64
4 现在你已经有了编译64位环境,CD进入上面下载的代码Luajit-2.0.3/src目录
5 把msvcbuild.bat拖入到dos或者手动输入,如:C:\Users\Administrator\Desktop\pak\luajava-master\LuaJIT-2.0.3\src\msvcbuild.bat
6 等一会儿就会出现=== Successfully built LuaJIT for Windows/x64 ===,这个表示64位的编译成功
7 进入代码的根目录, 输入nmake -f nmake -f Makefile.win
如果成功会出现
------------------
Build Complete
------------------
编译成功会出现一个jar和一个dll
否则查看出错位置,一般是java环境没有配置,再就是config.win看下是否luajit的路径错了
linux:
1 进入代码的Luajit-2.0.3/src目录,修改makefile文件,添加XCFLAGS=-fPIC
2 进入Luajit-2.0.3目录,输入make,系统会自动判断并生成对应的64位或者32位
3 成功后,进入代码根目录,输入make
如果成功会出现
------------------
Build Complete
------------------
否则查看出错位置,一般是java环境没有配置,再就是config看下是否luajit的路径错了
注意:在java代码中我已经把luastate的加载lib代码去掉
还有jni中C-》java的调用,其中的类加载层级关系。
最后附加lua到java的日志打印函数:
if (Constants.isDebug()) {
JavaFunction pf = new JavaFunction(L) {
@Override
public int execute() throws LuaException {
int top = L.getTop();
for (int i = 2; i <= top; i++) {
LuaObject obj = getParam(i);
if (obj != null) {
if (i>2) System.out.print( '\t' );
System.out.print(obj.toString());
}
}
if (top >= 2) {
System.out.println();
}
return 0;
}
};
pf.register("print");
L.pushJavaFunction(pf);
}
有需要学习的可以发我邮件或者加我QQ:329137445
相关文章推荐
- CTP JAVA_API(JCTP)编译(利用Swig封装C++动态库)linux版64位
- Linux下编译和部署JavaWeb程序脚本
- Dos 下编译java文件引用到多个第三方jar时必须逐个指定到具体的jar,否则报找不到类型错误
- 在64位linux下编译出32位程序
- 通过DOS编译运行Java程序
- 32位的fortran函数库在64位Linux下编译及使用的方法
- Sun放出Linux下64位Java插件
- Linux 软件安装使用(1) java编译环境
- 在DOS下编译java文件(这个文件用到了第三方jar包)
- linux gcc 区分32位或64位编译
- 64位Linux 编译32位程序
- Linux 64位 编译32位程序
- JAVA路径问题及命令行编译运行基础(linux下)
- linux(ubuntu 10.10) 64位系统 gcc编译(c)成32位(静态)可执行应用程序的方法
- 如何在Dos下编译和运行Java程序?
- 在linux64位机器上编译时遇到的两个问题
- DOS下编译执行java程序
- 在64位linux上编译32位程序
- LINUX和WIN下运行java应用程序脚本【转】
- Linux下编译和部署JavaWeb程序脚本