lua如何调用java程序Lua是一个实用的脚本语言,相对于Python来说,比较小巧,但它功能并不逊色,特别是在游戏开发中非常实用(WoW采用的就是Lua作为脚本的) 。Lua在C\C的实现我就不多说了,网上随便一搜,到处都是这方面的介绍,我想说的是如何在Java下使用Lua以提高编程效率、增强你的程序可扩展性 。
首先,要在Java上使用Lua脚本,必须有关于Lua脚本解释器以及Java程序可以访问这些脚本的相关API,即相关类库 。我使用的是一个叫做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文件(),是个文本文件(lua.txt) 。打开UltraEdit安装目录下的wordfile.txt,把lua.txt文件中的内容拷贝粘贴到wordfile.txt的末尾,存盘,OK,于是UltraEdit语法高亮项多出Lua一项,可以选择使用了 。其他语言的语法高亮支持与此类似 。
但你如果是Java开发者,应该都用过Eclipse吧?可否在Eclipse下直接就写Lua脚本呢?答案是可以的!
这当然是Eclipse的强大的插件管理功能啦,你可以去下载luaeclipse插件来使你的Eclipse拥有编写Lua脚本的能力(既可以高亮显示你的脚本,是不是很爽呢),你可以在这里下载:
下载后安装后,你的Eclipse就可以建立和编写Lua脚本了,注意设置一下首选项中关于LUA的属性(Eclipse安装插件就不用我说了吧????)
好了,现在一切都准备好了,让我们来一个HelloWorld吧!
首先在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咯,注意 , 这是Java代码!这是Java代码调用了一个叫hello.lua的脚本,下边是这个脚本文件的内容(你可以直接把他们复制到你的hello.lua文件中):
================================================================
--基本方法
print("您现在使用的是LUA脚本语言")
print("让我们一起来感受它的奇妙吧!\n")
--特点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 i5
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程序就可以了,就会看到如下的输出结果:
========================================================
这里是Java程序调用Lua脚本
您现在使用的是LUA脚本语言
让我们一起来感受它的奇妙吧!
true false
false true
2
1
连接字符串8
number
while循环例子
1
2
3
4
repeat循环例子
1
2
3
4
for循环例子
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的奥妙,至于什么我就不说了,你们自己运行看看吧 。。。哈哈,就写到这里了,我去上下WC 。。。。
怎么实现javascript中调用java类中的方法实现javascript中调用java类中的方法如下:
只要调用addJavascriptInterface方法即可映射一个Java对象到JavaScript对象上 。
1、映射Java对象到JavaScript对象上
代码如下:
mWebView = (WebView) findViewById(R.id.wv_content);
mWebView.setVerticalScrollbarOverlay(true);
final WebSettings settings = mWebView.getSettings();
settings.setSupportZoom(true);
//WebView启用Javascript脚本执行
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
//映射Java对象到一个名为”js2java“的Javascript对象上
//JavaScript中可以通过"window.js2java"来调用Java对象的方法
mWebView.addJavascriptInterface(new JSInvokeClass(), "js2java");
代码如下:
/**网页Javascript调用接口**/
class JSInvokeClass {
public void back() {
activity.finish();
}
}
2、JavaScript调用Java对象示例
调用上述JSInvokeClass类对象的back方法 , 如下:
window.js2java.back();
如何在c中调用java代码C语言调用Java , 还有Java调用C,都使用到JNI技术,C语言调用需要创建Java虚拟机 , 可查看函数JNI_CreateJavaVM、DestroyJavaVM的资料,函数声明在jni.h头文件(JDK)中 。需注意参数类型转换,两种语言的参数类型和传递有讲究 , 有多个返回的话,必须传递对象参数进行处理 。
裕语言和易语言一个语言吗裕语言和易语言不是一个语言 。
裕语言是用java脚本打造出iapp语言的为裕语言 。
《裕语言》是一基于java的扩展性脚本语言,丰富的类库定置简单快速开发你的应用程序,让开发过程变得娱乐化大众化 。《裕语言》是由游改乐计算编程工程师 黄裕先生、宇恒先生 定制以及实现成型代码功能,其代码简单方便的编写体验是一大亮点,目前还会有更多强大的功能完善中 。iApp是基于裕语言平台上运行的应用程序,全面想公众开放开放平台,任何有兴趣的人都可以参与开放设计自己的程序 。
易语言是一个自主开发,适合国情,不同层次不同专业的人员易学易用的汉语编程语言 。易语言降低了广大电脑用户编程的门槛,尤其是根本不懂英文或者英文了解很少的用户,可以通过使用本语言极其快速地进入Windows程序编写的大门 。
如何在Unity中调用Android的JAVA代码方法/步骤
1
首先我们要创建一个android项目
步骤阅读
2
因为项目需要使用Unity提供的接口裕语言调用java代码,所以需要将接口classes.jar引入至当前工程但中 。接口包的所在地裕语言调用java代码,打开Finder-应用程序-Unity-点击Unity图标 , 鼠标右键选择“显示包内容”-Contents-PlaybackEngines-AndroidPlayer-bin-classes.jar
。接口包引入工程后,开始编写JAVA代码 。
3
UnityTestActivity是主Activity,Unity程序一起动就会调用这个Activity , 它是在AndroidManifest.xml中配置的 。它需要继承UnityPlayerActivity,然而它就是刚刚我们引入的classes.jar包中提供的接口类 。UnityTestActivity对外提供了两个方法接口,StartActivity0(String
name) 方法与StartActivity1(String
name)方法,这两个方法是在Unity中使用C#脚本调用的,意思是调用后程序将打开一个新的Activity,参数name也是由C#脚本传递过来的,接着将传递的String参数继续传递给新打开的Activity 。
步骤阅读
4
接下来就是设置xml文件和布局文件了 。对于会android编程的同学就很熟悉了 。
5
把写好的java代码发布成jar包 。接下来就创建unity工程,Unity工程中文件夹的结构如下 , Plugins-Android的名称不能修改,必需保持一致 。接着把Eclipse中Android的工程文件拷贝至这里,除了Android工程中的src文件夹,将其它文件夹全部拷贝至Plugins-Android文件夹中 。最后在Plugins-Android文件夹中创建bin文件夹,然后将刚刚生成的.jar文件拷贝进来,jar的名称可以随便修改,但是jar包里面必须是com-xys-裕语言调用java代码你的class文件,否则运行程序后提示找不到类文件 。
步骤阅读
6
接下来就是如何在C#中调用android的方法的代码了 。
加入如下代码 。
AndroidJavaClass jc = new
AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo =
jc.GetStaticAndroidJavaObject("currentActivity");
jo.Call("StartActivity0","第一个Activity");
先得到AndroidJavaClass,然后得到AndroidjavaObject就是当前Activity的对象,也就是我们在上面创建的主UnityTestActivity.JAVA 。拿到它的对象后调用jo.Call()参数1表示调用UnityTestActivity.JAVA类中的方法名称,参数2表示该方法传递过去的参数 。如下图所示:“第一个Activity”与“第二个Activit”就是我在C#中传递过去的字符串 。
7
发布成android平台apk
Excel中的VBA如何调用Java呀?VBA中调用Java程序
1、创建一个Java Class代码可以简单如下
public class Test {
public static void main(String[] args) {
System.out.println("Test");
}
}
2、编译Class
3、在VBA中通过如下代码调用java
Dim ws As WshShell
Dim we As WshExec
Dim i As Integer
Set ws = New WshShell
Set we = ws.Exec("javawe:\Test")
MsgBox we.StdOut.ReadAll
Set ws = Nothing
Set we = Nothing
4、执行上面VBA代码会弹出对话框显示Test字样
注意要点裕语言调用java代码:
(1)VBA工程中药引用Windows Script Host Object Model
(2)机器上要安装JRE裕语言调用java代码 , 而且要将JRE Bin路径写入到环境变量PATH中裕语言调用java代码,否则需要指出JAVAW的完整路径
其实可以使用 VBA中的Shell调用JAVA裕语言调用java代码,但是这样就只能是执行java裕语言调用java代码,没有返回值,使用如上方法可以通过System.out.print输出字符作为返回结果被获取到
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言 。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网 , 同时拥有全球最大的开发者专业社群 。
【裕语言调用java代码 裕语言v5】裕语言调用java代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于裕语言v5、裕语言调用java代码的信息别忘了在本站进行查找喔 。
推荐阅读
- jqueryv1.11.1的简单介绍
- 飞行航线攻略游戏视频,飞行航线攻略游戏视频教学
- 怎么用社群直播视频号,视频号怎么做社群
- mysql怎么多命令执行 mysql执行多个sql文件
- go语言抓包框架,go语言api框架
- windows系统工作室的简单介绍
- 游戏飞行翅膀素材视频,有翅膀飞的游戏
- vb.net数组的值 vb中数组的作用
- asp和net传递值,asp,net