当前位置: 首页 > 工具软件 > LuaJ > 使用案例 >

java luaj_LuaJ教程-luaj命令行使用

仲孙钊
2023-12-01

luaJ是一个java实现的lua脚本解释器,适合嵌入java应用中。个人比较喜欢libgdx这个引擎,所以对luaJ项目也有一些关注。cocos2d貌似也用到了这个。对于一些不想使用本地库的java项目,luaJ是个不错的选择。我下载的是luaJ-3.0.1版本,解压后可以得到完整的工程目录。主要用到的东西是lib文件夹中的luaj-jse-3.0.1.jar这个包,(另一个是luaJ-jme-3.0.1.jar)。版本不同可能有出入,使用带有jse的包就可以了。

1、执行lua脚本

新建一个lua文件hello.lua,写入以下内容:

print('hello')

方便起见,将hello.lua文件新建在lib文件夹中,跟luaJ-jse-3.0.1.jar在同一个目录即可,然后打开命令行,cd到这个文件夹,输入命令:

java -cp luaj-jse-3.0.1.jar lua hello.lua

即可看到输出结果:hello

上面的luaj-jse-3.0.1.jar以及hello.lua部分可以替换成其他的目录。

2、编译lua脚本为lua字节码

上面的方法使用lua命令解释模式执行lua代码,这种方法比较慢;我们可以使用luac命令来编译lua代码成为lua字节码,还是以hello.lua为例,进入lib目录下,输入:

java -cp luaj-jse-3.0.1.jar luac hello.lua

执行完毕后,当前文件夹下多出了luac.out文件,这个文件就是hello.lua编译后的lua字节码。

那么如何指定输出路径呢?可以使用命令

java -cp luaj-jse-3.0.1.jar luac hello.lua -o hello.luac

加上 -o [路径]来指定输出文件的位置。上面的命令执行后会在当前文件lib下面生成hello.luac文件。

接下来执行lua字节码。以hello.luac为例,命令如下:

java -cp luaj-jse-3.0.1.jar lua hello.luac

如果没有指定输出:

java -cp luaj-jse-3.0.1.jar lua luac.out

3、lua脚本编译成java字节码

这个功能很强大,不过可能用的人不多...这个命令是luajc;使用这个命令需要安装ant,以及bcel-5.2.jar这个包。后者可以百度英文搜索bcel-5.2来下载。下载完成后把bcel-5.2.jar放到lib目录下。方便起见同样切换到lib目录下执行。

命令如下:

java -cp luaj-jse-3.0.1.jar;bcel-5.2.jar luajc -s . -d . hello.lua

特别注意那两个点,代表当前目录:-s后面是源代码目录所在,-d后是输出的class文件目录所在,最后是文件名。

执行后在lib目录下生成了hello.class

接下来执行hello.class文件,同样在lib目录下执行

java -cp luaj-jse-3.0.1.jar;. lua -l hello

运行后输出hello

 类似资料: