자바 에서 lua 스 크 립 트 언어 호출 1
6902 단어 lua
우선,자바 에 Lua 스 크 립 트 를 사용 하려 면 Lua 스 크 립 트 해석 기 및 자바 프로그램 이 이 스 크 립 트 에 접근 할 수 있 는 관련 API,즉 관련 라 이브 러 리 가 있어 야 합 니 다.제 가 사용 하 는 것 은 LuaJava 라 는 오픈 소스 프로젝트 입 니 다.다음 과 같 습 니 다.
4.567915.LuaJava 의 라 이브 러 리 와 소스 코드,문서 사용 비용 등 을 찾 습 니 다.
다운로드 하여 압축 을 푼 후 두 개의 파일(내 가 다운로드 한 것 은 1.1 버 전):luajava-1.1.jar 파일 과 luajava-1.1.dll 동적 연결 라 이브 러 리 파일 을 포함 합 니 다.
luajava-1.1.jar 는 프로그램 이 제공 하 는 API 를 사용 할 수 있 도록 프로젝트 의 ClassPath 에 추가 하 는 것 이 쉬 워 집 니 다.
luaJava-1.1.dll 은 번 거 롭 습 니 다.Windows 설치 디 렉 터 리 에 가입 해 야 합 니 다.예 를 들 어 XP 를 사용 하고 CD 에 설치 하면 C:\WINDOWS 디 렉 터 리 에 직접 가입 하면 됩 니 다.물론 JDK 아래 jre 에 도 가입 할 수 있 습 니 다.예 를 들 어 제 것 은 C:\Program Files\자바\jdk 1.6.0 입 니 다.20\bin
자,이제 프로젝트 는 Lua 스 크 립 트 를 사용 하여 동적 확장 기능 을 실현 할 수 있 습 니 다!하지만 서 두 르 지 마 세 요.Lua 스 크 립 트 를 쓸 도구 가 있어 야 하 죠?수첩 으로 쓸 수 는 없 잖 아 요????????
UltraEdit 을 사용 할 수 있 지만 UE 로 lua 파일 을 열 면 메모 장과 차이 가 많 지 않 고 하 이 라이트 가 없 음 을 발견 할 수 있 습 니 다.(새로운 버 전의 Lua 스 크 립 트 가 지원 되 지 않 을 수도 있 습 니 다)UE 가 지원 하지 않 는 다 면 먼저 UltraEdit 홈 페이지 에서 Lua 를 지원 하 는 Wordfiles 파일 을 다운로드 하 십시오.(
http://www.keplerproject.org/luajava/)텍스트 파일(lua.txt)입 니 다.UltraEdit 설치 디 렉 터 리 에 있 는 wordfile.txt 를 열 고 lua.txt 파일 의 내용 을 복사 하여 wordfile.txt 의 끝,메모리,OK 에 붙 여 넣 습 니 다.그래서 UltraEdit 문법 하 이 라이트 항목 이 Lua 항목 보다 많아 서 선택 하여 사용 할 수 있 습 니 다.다른 언어의 문법 하 이 라이트 지원 은 이와 유사 합 니 다.
하지만 자바 개발 자라 면 이 클립 스 를 다 써 보 셨 겠 죠?Eclipse 에 Lua 스 크 립 트 를 직접 써 주 시 겠 어 요?정 답 은 돼!
이것 은 당연히 Eclipse 의 강력 한 플러그 인 관리 기능 입 니 다.luaeclipse 플러그 인 을 다운로드 하여 Lua 스 크 립 트 를 작성 하 는 능력 을 가 질 수 있 습 니 다.(스 크 립 트 를 강조 할 수도 있 고 시원 하지 않 습 니까?)여기 서 다운로드 할 수 있 습 니 다.
http://www.ultraedit.com/files/wf/lua.txt
다운로드 후 설치 하면 Eclipse 에서 Lua 스 크 립 트 를 만 들 고 작성 할 수 있 습 니 다.첫 번 째 옵션 에서 LUA 에 대한 속성 을 설정 하 십시오.(Eclipse 설치 플러그 인 은 제 가 말 하지 않 아 도 되 죠???)
자,이제 모든 준비 가 다 되 었 습 니 다.Hello World 로 갑시다.
먼저 Eclipse 에서 TestLua 프로젝트 를 만 든 다음 다음 프로그램 을 작성 합 니 다.
import org.keplerproject.luajava.*;
public class Hello
{
public static void main(String[] args)
{
LuaState L = LuaStateFactory.newLuaState();
L.openLibs();
System.out.println(" Java Lua ");
// hello.lua,
L.LdoFile("res/hello.lua");
}
}
자,프로그램 이 끝 났 습 니 다.당연히 Hello.java 로 저장 되 어야 합 니 다.주의 하 세 요.이것 은 자바 코드 입 니 다!이것 은 자바 코드 가 hello.lua 라 는 스 크 립 트 를 호출 한 것 입 니 다.아래 는 이 스 크 립 트 파일 의 내용 입 니 다.(hello.lua 파일 에 직접 복사 할 수 있 습 니 다)
================================================================
--
print(" LUA ")
print(" !
")
-- 1,
a={1,2}
b=a
print(a==b, a~=b) -- true, false
a={1,2}
b={1,2}
print(a==b, a~=b) -- false, true
-- 2,
a,b=1,2
a,b=b,a
print(a)
print(b)
print(" ".." "..2^3)
print(type(2))
--while
i=0
print("while ")
while i<5
do
print(i);
i=i+1
end
--repeat
i=0
print("repeat ")
repeat
print(i)
i=i+1
until i>=5
--for
print("for ")
for i=0,5,1
do
print(i)
end
T1={}
T1[1] = 10
print(T1[1])
function fun(a,b,...)
print(a)
print(b)
print(arg[1])
print(arg[2])
print(arg[3])
return
end
a,b=2,3
fun(a,b,200,400,500)
========================================================
자,위의 스 크 립 트 는 무슨 뜻 인지 모 르 시 면 괜 찮 습 니 다.바로 실행 하 세 요.
그 Hello.java 프로그램 을 컴 파일 하여 실행 하면 다음 과 같은 출력 결 과 를 볼 수 있 습 니 다.
========================================================
여 기 는 자바 프로그램 에서 Lua 스 크 립 트 를 호출 합 니 다.
현재 LUA 스 크 립 트 언어 를 사용 하고 있 습 니 다.
우리 함께 그것 의 기묘 함 을 느끼 자!
true false
false true
2
1
연결 문자열 8
number
while 순환 예
0
1
2
3
4
반복 반복 예
0
1
2
3
4
for 순환 예
0
1
2
3
4
5
10
2
3
200
400
500
==========================================================
어 때,시원 하지 않 아?재미 없어?자,대본 한 소절 더 주세요.
frame = luajava.newInstance("java.awt.Frame", "Lua Java Console")
console = luajava.newInstance("java.awt.TextArea")
buttons_pn = luajava.newInstance("java.awt.Panel")
execute_bt = luajava.newInstance("java.awt.Button", "Execute")
clear_bt = luajava.newInstance("java.awt.Button", "Clear")
exit_bt = luajava.newInstance("java.awt.Button", "Exit")
frame:setSize(600,300)
buttons_pn:add(execute_bt)
buttons_pn:add(clear_bt)
buttons_pn:add(exit_bt)
BorderLayout = luajava.bindClass("java.awt.BorderLayout")
frame:add(BorderLayout.NORTH, console)
frame:add(BorderLayout.SOUTH, buttons_pn)
frame:pack()
frame:show()
--
-- Listeners
--
execute_cb = {
actionPerformed = function(ev)
print("execute")
pcall(loadstring(console:getText()))
end
}
jproxy = luajava.createProxy("java.awt.event.ActionListener",execute_cb)
execute_bt:addActionListener(jproxy)
clear_cb = {actionPerformed= function (ev)
print("clear");
console:setText("");
end
}
jproxy = luajava.createProxy("java.awt.event.ActionListener" ,clear_cb)
clear_bt:addActionListener(jproxy)
exit_cb = { actionPerformed=function (ev)
print("exit")
frame:setVisible(false)
frame:dispose()
end
}
jproxyb = luajava.createProxy("java.awt.event.ActionListener" ,exit_cb)
exit_bt:addActionListener(jproxyb)
close_cb = { }
function close_cb.windowClosing(ev)
print("close")
frame:setVisible(false)
frame:dispose()
end
function close_cb.windowActivated(ev)
print("act")
end
jproxy = luajava.createProxy("java.awt.event.WindowListener", close_cb)
frame:addWindowListener(jproxy)
이 스 크 립 트 가 실행 되면 LUA 의 오묘 함 을 더 알 고 싶 어 질 것 입 니 다.무엇 에 대해 서 는 말 하지 않 겠 습 니 다.직접 실행 해 보 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Neovim을 위한 자동 완성NeoVim으로 생산성을 높일 수 있는 가장 멋진 기능 중 하나는 자동 완성이므로 성능에 따라 플러그인을 선택할 수 있습니다. YouCompleteMe Coc.nvim 이 플러그인은 사용하기 좋지만 Javascrip...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.