自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

J2ME Lua腳本編程學(xué)習(xí)教程

移動(dòng)開發(fā) iOS
J2ME Lua腳本編程學(xué)習(xí)教程是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)J2ME中關(guān)于Lua的內(nèi)容,具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。

J2ME Lua腳本編程學(xué)習(xí)教程是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)J2ME中關(guān)于Lua的內(nèi)容,具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。

一、適合J2ME的嵌入式腳本語言

對(duì)于硬件資源受限的J2ME平臺(tái),對(duì)嵌入的腳本有很高的要求。

(1)體積小巧,執(zhí)行效率高,占用較低的內(nèi)存。

(2)語法簡(jiǎn)單,易學(xué)易用(***是比較流行的腳本語言)。

(3)獨(dú)立性強(qiáng),不依賴其它程序。適合移植到KVM環(huán)境下。

根據(jù)以上條件進(jìn)行對(duì)比和篩選,我最終選擇了Lua以及ECMAScript。

Lua是一個(gè)小巧的腳本語言。作者是巴西人。它的設(shè)計(jì)目就是為了嵌入應(yīng)用程序,為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。 Lua是目前公認(rèn)的最小巧,執(zhí)行效率***,同時(shí)功能非常強(qiáng)大的的腳本語言之一。它被大量用于游戲軟件中。語法類似basic,非常容易上手。

ECMAScript是由歐洲計(jì)算機(jī)制造商協(xié)會(huì)(ECMA)通過ECMA-262標(biāo)準(zhǔn)化的腳本程序設(shè)計(jì)語言。這種語言在萬維網(wǎng)上應(yīng)用廣泛,它往往被稱為JavaScript或JScript,但實(shí)際上后兩者是ECMA-262標(biāo)準(zhǔn)的擴(kuò)展

還有一種幾乎是專為J2ME環(huán)境開發(fā)的Java動(dòng)態(tài)語言,Hecl。Hecl編程語言是一種用Java實(shí)現(xiàn)的高級(jí)腳本語言. 它的特點(diǎn)是非常小,可擴(kuò)展,非常靈活并且易于學(xué)習(xí)和使用。

二、相關(guān)開源項(xiàng)目介紹

(1)kahlua(卡魯瓦)
kahlua是一款基于CLDC1.1且非常小巧的Lua解釋器,它很容易擴(kuò)展。只需要配合一個(gè)Lua編譯器,就可以執(zhí)行編譯后的Lua源代碼。

項(xiàng)目地址:http://code.google.com/p/kahlua/

(2)mochalua(穆哈)

mochalua同樣也是基于CLDC1.1實(shí)現(xiàn)的Lua解釋器。
 
項(xiàng)目地址:http://code.google.com/p/mochalua/

(3)minijoe

minijoe自稱最小的JavaScript運(yùn)行環(huán)境,基本上支持了所有的ECMA-262特性。它帶有一個(gè)編譯器和一個(gè)解釋器。該編譯器將ECMAScript源代碼編譯成作者設(shè)計(jì)的一套很簡(jiǎn)化的字節(jié)碼。然后通過解釋器執(zhí)行字節(jié)碼。整個(gè)代碼非常樸實(shí)高效,尤其是解釋器的部分。

 項(xiàng)目地址:http://www.minijoe.com/

(4)Hecl

這個(gè)動(dòng)態(tài)語言最初就是針對(duì)J2ME平臺(tái)設(shè)計(jì)的,它附帶了非常多的J2ME示范。不過與上面三個(gè)項(xiàng)目不同,它采用了解釋執(zhí)行的方式,一定程度上降低了腳本的執(zhí)行效率。
 項(xiàng)目地址:http://www.hecl.org/

總之:由于J2ME平臺(tái)資源拮據(jù),大多數(shù)的嵌入方案都采用了編譯執(zhí)行的模式。將腳本源代碼編譯成更簡(jiǎn)單的“字節(jié)碼”,然后在客戶端執(zhí)行這些“字節(jié)碼”。這樣做的好處是,解釋器更簡(jiǎn)單,執(zhí)行更高效。至于上面的開源項(xiàng)目,建議學(xué)習(xí)kahlua,minijoe和Hecl。mochalua似乎更新比較緩慢。

三、Java中使用Lua腳本語言

Lua是一個(gè)實(shí)用的腳本語言,相對(duì)于Python來說,比較小巧,但它功能并不遜色,特別是在游戲開發(fā)中非常實(shí)用(WoW采用的就是Lua作為腳本的)。Lua在C\C++的實(shí)現(xiàn)我就不多說了,網(wǎng)上隨便一搜,到處都是這方面的介紹,我想說的是如何在Java下使用Lua以提高編程效率、增強(qiáng)你的程序可擴(kuò)展性。

首先,要在Java上使用Lua腳本,必須有關(guān)于Lua腳本解釋器以及Java程序可以訪問這些腳本的相關(guān)API,即相關(guān)類庫。我使用的是一個(gè)叫做LuaJava的開源項(xiàng)目,可以在: http://www.keplerproject.org/luajava/ 找到LuaJava的類庫以及源代碼,使用文檔資等

下載下來解壓后包括兩個(gè)文件(我下載的是1.1版本的): luajava-1.1.jar 文件和 luajava-1.1.dll動(dòng)態(tài)連接庫文件

luajava-1.1.jar就容易了,就是將其加入你的項(xiàng)目的ClassPath中,以便程序可以使用它提供的API

luaJava-1.1.dll就麻煩了,你必須將其加入你的Windows安裝目錄下,比如你用的是XP,安裝在C盤,那就直接將其加入C:\WINDOWS目錄下即可,當(dāng)然你也可以將其加入你的JDK下的jre下

好了,現(xiàn)在你的項(xiàng)目就可以使用Lua腳本來實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)展功能了!不過不要急,你還得有工具來寫Lua腳本吧?不可能用記事本來寫吧?

你可以使用UltraEdit,但你用UE打開lua文件后,會(huì)發(fā)現(xiàn)和記事本差不多,并沒有高亮(可能新版本的支持Lua腳本了),如果你的UE不支持,那么先去UltraEdit的官網(wǎng)下載支持Lua的Wordfiles文件(http://www.ultraedit.com/files/wf/lua.txt),是個(gè)文本文件(lua.txt)。打開UltraEdit安裝目錄下的wordfile.txt,把lua.txt文件中的內(nèi)容拷貝粘貼到wordfile.txt的末尾,存盤,OK,于是UltraEdit語法高亮項(xiàng)多出Lua一項(xiàng),可以選擇使用了。其他語言的語法高亮支持與此類似。

但你如果是Java開發(fā)者,應(yīng)該都用過Eclipse吧?可否在Eclipse下直接就寫Lua腳本呢?答案是可以的!

這當(dāng)然是Eclipse的強(qiáng)大的插件管理功能啦,你可以去下載luaeclipse插件來使你的Eclipse擁有編寫Lua腳本的能力(既可以高亮顯示你的腳本,是不是很爽呢),你可以在這里下載:http://www.ideais.com.br/luaeclipse/

下載后安裝后,你的Eclipse就可以建立和編寫Lua腳本了,注意設(shè)置一下***項(xiàng)中關(guān)于LUA的屬性(Eclipse安裝插件就不用我說了吧????)

好了,現(xiàn)在一切都準(zhǔn)備好了,讓我們來一個(gè)HelloWorld吧!
首先在Eclipse先建立一個(gè)TestLua項(xiàng)目,然后編寫如下程序:

  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程序調(diào)用Lua腳本");      
  10.       
  11.       // 加載腳本hello.lua,并執(zhí)行  
  12.       L.LdoFile("res/hello.lua");   
  13.     }  

好了,程序?qū)懲炅?,?dāng)然是保存為Hello.java咯,注意,這是Java代碼!這是Java代碼調(diào)用了一個(gè)叫hello.lua的腳本,下邊是這個(gè)腳本文件的內(nèi)容(你可以直接把他們復(fù)制到你的hello.lua文件中):

基本方法

  1. print("您現(xiàn)在使用的是LUA腳本語言")  
  2. print("讓我們一起來感受它的奇妙吧!\n") 

特點(diǎ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 

特點(diǎn)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循環(huán)

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

repeat循環(huán)

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

for循環(huán)

  1. print("for循環(huán)例子")  
  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) 

好了,上邊的腳本如果你不懂什么意思也沒關(guān)系,直接運(yùn)行一下吧

你可以執(zhí)行編譯執(zhí)行那個(gè)Hello.java程序就可以了,就會(huì)看到如下的輸出結(jié)果:

這里是Java程序調(diào)用Lua腳本,您現(xiàn)在使用的是LUA腳本語言,讓我們一起來感受它的奇妙吧!

  1. true false  
  2. false true  
  3. 2  
  4. 1  
  5. 連接字符串8  
  6. number  
  7. while循環(huán)例子  
  8. 0  
  9. 1  
  10. 2  
  11. 3  
  12. 4  
  13. repeat循環(huán)例子  
  14. 0  
  15. 1  
  16. 2  
  17. 3  
  18. 4  
  19. for循環(huán)例子  
  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的官方開發(fā)工具

Lua 5.1.4是***版本(完成與2008.8.22),源代碼為C,Lua_v5.1.4.23.exe 這個(gè)程序?yàn)長(zhǎng)UA5.1的安裝環(huán)境,其中包括

lua.exe  該命令可以執(zhí)行一個(gè)編譯過的LUA程序

luac.exe 該命令可以將一個(gè)LUA源文件編譯成一個(gè)名為L(zhǎng)UAC.OUT的字節(jié)碼文件

SciTE\SciTE.exe 這個(gè)是個(gè)LUA  IDE

lExecutor.wlua 該窗口程序可以執(zhí)行一個(gè)LUA源文件

也可以頁面運(yùn)行腳本程序可以在這個(gè)網(wǎng)址!http://www.lua.org/cgi-bin/demo

五、LUA教程

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

也可以下載lua-5.1中文手冊(cè).chm 到本地。

小結(jié):詳解J2ME Lua腳本編程學(xué)習(xí)教程的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

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技術(shù)J2MEWTK

2009-06-30 15:49:00

J2ME編程

2011-06-08 15:05:43

J2ME

2010-09-29 10:46:11

J2MEKVM

2010-09-29 09:19:39

J2ME開發(fā)工具

2010-10-09 15:00:22

SnakeJ2ME

2011-07-21 16:03:12

J2ME

2009-10-19 13:59:39

J2ME編程開發(fā)平臺(tái)

2010-09-30 09:56:26

J2ME Polish

2009-03-22 09:38:03

Android移植J2ME

2009-06-23 11:30:16

RMSJ2ME

2010-09-30 13:28:55

J2ME圖形

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2010-09-29 13:50:31

J2MEJ2SE

2010-09-30 11:04:53

J2MERMS

2010-09-29 14:54:34

J2MEHashtable

2010-09-29 12:45:50

J2ME
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)