J2ME Lua脚本编程学习教程

移动开发 iOS
J2ME Lua脚本编程学习教程是本文要介绍的内容,主要是来学习J2ME中关于Lua的内容,具体内容的实现来看本文详解。

J2ME Lua脚本编程学习教程是本文要介绍的内容,主要是来学习J2ME中关于Lua的内容,具体内容的实现来看本文详解。

一、适合J2ME的嵌入式脚本语言

对于硬件资源受限的J2ME平台,对嵌入的脚本有很高的要求。

(1)体积小巧,执行效率高,占用较低的内存。

(2)语法简单,易学易用(***是比较流行的脚本语言)。

(3)独立性强,不依赖其它程序。适合移植到KVM环境下。

根据以上条件进行对比和筛选,我最终选择了Lua以及ECMAScript。

Lua是一个小巧的脚本语言。作者是巴西人。它的设计目就是为了嵌入应用程序,为应用程序提供灵活的扩展和定制功能。 Lua是目前公认的最小巧,执行效率***,同时功能非常强大的的脚本语言之一。它被大量用于游戏软件中。语法类似basic,非常容易上手。

ECMAScript是由欧洲计算机制造商协会(ECMA)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的扩展

还有一种几乎是专为J2ME环境开发的Java动态语言,Hecl。Hecl编程语言是一种用Java实现的高级脚本语言. 它的特点是非常小,可扩展,非常灵活并且易于学习和使用。

二、相关开源项目介绍

(1)kahlua(卡鲁瓦)
kahlua是一款基于CLDC1.1且非常小巧的Lua解释器,它很容易扩展。只需要配合一个Lua编译器,就可以执行编译后的Lua源代码。

项目地址:http://code.google.com/p/kahlua/

(2)mochalua(穆哈)

mochalua同样也是基于CLDC1.1实现的Lua解释器。
 
项目地址:http://code.google.com/p/mochalua/

(3)minijoe

minijoe自称最小的JavaScript运行环境,基本上支持了所有的ECMA-262特性。它带有一个编译器和一个解释器。该编译器将ECMAScript源代码编译成作者设计的一套很简化的字节码。然后通过解释器执行字节码。整个代码非常朴实高效,尤其是解释器的部分。

 项目地址:http://www.minijoe.com/

(4)Hecl

这个动态语言最初就是针对J2ME平台设计的,它附带了非常多的J2ME示范。不过与上面三个项目不同,它采用了解释执行的方式,一定程度上降低了脚本的执行效率。
 项目地址:http://www.hecl.org/

总之:由于J2ME平台资源拮据,大多数的嵌入方案都采用了编译执行的模式。将脚本源代码编译成更简单的“字节码”,然后在客户端执行这些“字节码”。这样做的好处是,解释器更简单,执行更高效。至于上面的开源项目,建议学习kahlua,minijoe和Hecl。mochalua似乎更新比较缓慢。

三、Java中使用Lua脚本语言

Lua是一个实用的脚本语言,相对于Python来说,比较小巧,但它功能并不逊色,特别是在游戏开发中非常实用(WoW采用的就是Lua作为脚本的)。Lua在C\C++的实现我就不多说了,网上随便一搜,到处都是这方面的介绍,我想说的是如何在Java下使用Lua以提高编程效率、增强你的程序可扩展性。

首先,要在Java上使用Lua脚本,必须有关于Lua脚本解释器以及Java程序可以访问这些脚本的相关API,即相关类库。我使用的是一个叫做LuaJava的开源项目,可以在: http://www.keplerproject.org/luajava/ 找到LuaJava的类库以及源代码,使用文档资等

下载下来解压后包括两个文件(我下载的是1.1版本的): luajava-1.1.jar 文件和 luajava-1.1.dll动态连接库文件

luajava-1.1.jar就容易了,就是将其加入你的项目的ClassPath中,以便程序可以使用它提供的API

luaJava-1.1.dll就麻烦了,你必须将其加入你的Windows安装目录下,比如你用的是XP,安装在C盘,那就直接将其加入C:\WINDOWS目录下即可,当然你也可以将其加入你的JDK下的jre下

好了,现在你的项目就可以使用Lua脚本来实现动态扩展功能了!不过不要急,你还得有工具来写Lua脚本吧?不可能用记事本来写吧?

你可以使用UltraEdit,但你用UE打开lua文件后,会发现和记事本差不多,并没有高亮(可能新版本的支持Lua脚本了),如果你的UE不支持,那么先去UltraEdit的官网下载支持Lua的Wordfiles文件(http://www.ultraedit.com/files/wf/lua.txt),是个文本文件(lua.txt)。打开UltraEdit安装目录下的wordfile.txt,把lua.txt文件中的内容拷贝粘贴到wordfile.txt的末尾,存盘,OK,于是UltraEdit语法高亮项多出Lua一项,可以选择使用了。其他语言的语法高亮支持与此类似。

但你如果是Java开发者,应该都用过Eclipse吧?可否在Eclipse下直接就写Lua脚本呢?答案是可以的!

这当然是Eclipse的强大的插件管理功能啦,你可以去下载luaeclipse插件来使你的Eclipse拥有编写Lua脚本的能力(既可以高亮显示你的脚本,是不是很爽呢),你可以在这里下载:http://www.ideais.com.br/luaeclipse/

下载后安装后,你的Eclipse就可以建立和编写Lua脚本了,注意设置一下***项中关于LUA的属性(Eclipse安装插件就不用我说了吧????)

好了,现在一切都准备好了,让我们来一个HelloWorld吧!
首先在Eclipse先建立一个TestLua项目,然后编写如下程序:

  1. import org.keplerproject.luajava.*;  
  2.  
  3. public class Hello  
  4. {  
  5.     public static void main(String[] args)  
  6.     {  
  7.       LuaState L = LuaStateFactory.newLuaState();  
  8.       L.openLibs();      
  9.       System.out.println("这里是Java程序调用Lua脚本");      
  10.       
  11.       // 加载脚本hello.lua,并执行  
  12.       L.LdoFile("res/hello.lua");   
  13.     }  

好了,程序写完了,当然是保存为Hello.java咯,注意,这是Java代码!这是Java代码调用了一个叫hello.lua的脚本,下边是这个脚本文件的内容(你可以直接把他们复制到你的hello.lua文件中):

基本方法

  1. print("您现在使用的是LUA脚本语言")  
  2. print("让我们一起来感受它的奇妙吧!\n") 

特点1,赋值

  1. a={1,2}  
  2. b=a 
  3. print(a==b, a~=b)    --输出 true, false  
  4. a={1,2}  
  5. b={1,2}  
  6. print(a==b, a~=b)    --输出 false, true 

特点2,交换

  1. a,b=1,2  
  2. a,bb=b,a  
  3. print(a)  
  4. print(b)  
  5.  
  6. print("连接".."字符串"..2^3)  
  7. print(type(2)) 

while循环

  1. i=0 
  2. print("while循环例子")  
  3. while i<5 
  4. do   
  5. print(i);  
  6. ii=i+1   
  7. end 

repeat循环

  1. i=0 
  2. print("repeat循环例子")  
  3. repeat  
  4. print(i)  
  5. ii=i+1  
  6. until i>=5 

for循环

  1. print("for循环例子")  
  2. for i=0,5,1  
  3. do  
  4. print(i)  
  5. end  
  6.  
  7. T1={}  
  8. T1[1] = 10  
  9. print(T1[1])  
  10.  
  11. function fun(a,b,...)  
  12. print(a)  
  13. print(b)  
  14. print(arg[1])  
  15. print(arg[2])  
  16. print(arg[3])  
  17. return  
  18. end  
  19.  
  20. a,b=2,3  
  21. fun(a,b,200,400,500) 

好了,上边的脚本如果你不懂什么意思也没关系,直接运行一下吧

你可以执行编译执行那个Hello.java程序就可以了,就会看到如下的输出结果:

这里是Java程序调用Lua脚本,您现在使用的是LUA脚本语言,让我们一起来感受它的奇妙吧!

  1. true false  
  2. false true  
  3. 2  
  4. 1  
  5. 连接字符串8  
  6. number  
  7. while循环例子  
  8. 0  
  9. 1  
  10. 2  
  11. 3  
  12. 4  
  13. repeat循环例子  
  14. 0  
  15. 1  
  16. 2  
  17. 3  
  18. 4  
  19. for循环例子  
  20. 0  
  21. 1  
  22. 2  
  23. 3  
  24. 4  
  25. 5  
  26. 10  
  27. 2  
  28. 3  
  29. 200  
  30. 400  
  31. 500 

四、LUA.ORG的官方开发工具

Lua 5.1.4是***版本(完成与2008.8.22),源代码为C,Lua_v5.1.4.23.exe 这个程序为LUA5.1的安装环境,其中包括

lua.exe  该命令可以执行一个编译过的LUA程序

luac.exe 该命令可以将一个LUA源文件编译成一个名为LUAC.OUT的字节码文件

SciTE\SciTE.exe 这个是个LUA  IDE

lExecutor.wlua 该窗口程序可以执行一个LUA源文件

也可以页面运行脚本程序可以在这个网址!http://www.lua.org/cgi-bin/demo

五、LUA教程

在线教程:http://manual.luaer.cn/

也可以下载lua-5.1中文手册.chm 到本地。

小结:详解J2ME Lua脚本编程学习教程的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2010-09-29 08:57:04

J2ME前景

2011-08-29 15:10:19

JAVALua 脚本

2010-09-30 11:16:53

J2ME Snake脚

2010-09-28 16:05:36

J2ME技术J2MEWTK

2011-06-08 15:05:43

J2ME

2010-09-29 10:46:11

J2MEKVM

2009-06-30 15:49:00

J2ME编程

2010-09-29 09:19:39

J2ME开发工具

2010-10-09 15:00:22

SnakeJ2ME

2009-10-19 13:59:39

J2ME编程开发平台

2011-07-21 16:03:12

J2ME

2010-09-30 13:28:55

J2ME图形

2009-03-22 09:38:03

Android移植J2ME

2010-09-30 09:56:26

J2ME Polish

2009-06-23 11:30:16

RMSJ2ME

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2010-09-29 13:50:31

J2MEJ2SE

2009-07-09 16:06:10

JDK J2EE J2

2010-09-29 16:20:06

J2MEWeb服务API

2011-12-02 10:37:14

JavaJ2ME
点赞
收藏

51CTO技术栈公众号