java中使用lua脚本

第一步:

windows下,先下载安装lua(其他操作系统自行百度,我只说主要基本的流程)
下载地址
我选了lua-5.3.4_Win64_bin.zip为例

第二步:

解压到D盘根路径的lua文件夹中
配置环境变量,增加D:\lua;

第三步:

java项目中引入luaj
git项目为例:

		<dependency><groupId>org.luaj</groupId><artifactId>luaj-jse</artifactId><version>3.0.1</version></dependency>

第四步

java调用lua分两种情况:

第一种情况,简单的lua脚本,直接用java字符串写:

 public static void main(String[] args) {String luaStr = "print 'hello world'";Globals globals = JsePlatform.standardGlobals();LuaValue chunk = globals.load(luaStr);chunk.call();
}

执行结果如下:

hello world

第二种情况,java中调用lua文件:
创建lua文件:testtest.lua

--无参方法
function test1()
print '调用lua文件无参方法的返回值'
end--带参方法
function test2(str)
return '调用lua文件有参方法的返回值'
end

java中调用:

public static void main(String[] args) {String luaPath = "testtest.lua的路径";Globals globals = JsePlatform.standardGlobals();globals.load(new InputStreamReader(new FileInputStream(new File(luaPath))), "chunkname").call();LuaValue func = globals.get(LuaValue.valueOf("test1"));func.call();LuaValue func1 = globals.get(LuaValue.valueOf("test2"));String data = func1.call(LuaValue.valueOf("java入参")).toString();System.out.println("lua文件返回值:" + data);}

执行结果如下:

调用lua文件无参方法的返回值
lua文件返回值:调用lua文件有参方法的返回值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中使用lua操作redis

java中使用lua脚本参见我的上一篇文章 lua基础 本篇简单说下java中使用lua操作redis的示例&#xff0c;如下&#xff1a; 先引入jedis <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</…

spring-boot发送邮件失败 AuthenticationFailedException: 535 Authentication Failed

发送邮件失败&#xff0c;平时一直是好的&#xff0c;突然有天开始失败了&#xff0c;最后是发现邮箱密码失效了。。。 有的邮箱&#xff0c;需要定期更改密码。

windows本地项目开机自启动设置

记录下&#xff0c;本地项目开机自启动 vue项目 新建vue.bat文件 echo off :: nodejs安装目录下的nodevars.bat set nodevars "D:\Program Files\nodejs\nodevars.bat" :: 切换到D盘 d: :: 移动到需要启动的目录 cd D:\Users\curry.zhang\IdeaProjects\data-chec…

互联网广告行业(01)------ 初识了解DSP、SSP、ADX

最近有幸接触到公司的一个实时竞价系统&#xff0c;也算是公司的核心系统之一了&#xff0c;增加了很多新的知识&#xff0c;可能有点乱&#xff0c;先总结一波&#xff1a; 广告行业&#xff0c;先介绍概念 广告主&#xff1a;需要打广告的站点&#xff0c;一般就是卖东西的…

互联网广告行业(02)------OpenRTB(实时竞价)规范解读

RTB&#xff1a;(Real Time Bidding实时竞价)&#xff0c;RTB是一种广告交易的方式 OpenRTB&#xff1a;简单理解就是一个行业规范&#xff0c;是一个为了促进RTB方式广告的标准&#xff0c;有对应的api文档&#xff0c;大家都按照这个规范去传参数&#xff0c;那么发送方和接收…

[go]---从java到go(01)---基础与入门上手

为什么用go&#xff0c;就是为了快速响应并且高并发。 一样的逻辑&#xff0c;用java也能实现&#xff0c;但用go可能就比java快点。 如果你很熟练java了&#xff0c;那么学习go就会很快。 go的社区环境相比java没那么大&#xff0c;但一般问题都足够了。 go是谷歌出品&#xf…

[go]---从java到go(02)---一个简单的handler模式的实现

类似于责任链模式吧&#xff0c;不同类实现相同的入参&#xff0c;执行不同的操作&#xff0c;一个执行完再确定要不要执行下一个。 用go实现&#xff1a; 1.定义一个接口 后面所有的handler都要实现这个接口的handler方法 type IHandler interface {/**true 表示通过 false…

[数据库] --- clickhouse

clickhouse是一个列式数据库&#xff08;系统&#xff09;。 官方文档 官网比较全&#xff0c;但也可以说比较杂&#xff0c;下面就是我个人的一些总结&#xff0c;以及在实际工作中的应用场景。 1.clickhouse适用场景 clickhouse主要适合那种大量数据做分析的场景。 一般数据…

错误记录:expected single matching bean but found 2

springboot项目&#xff0c;之前有mysql数据源&#xff0c;现在又新增了clickhouse数据源&#xff0c;于是 新增了一个clickhouseDatasource的配置bean&#xff0c;如下&#xff1a; Beanpublic DataSource dataSource() throws PropertyVetoException {HikariConfig config …

消息队列(5):RocketMQ

介绍 RocketMQ是一款成熟的分布式消息中间件。 由阿里2012年开源&#xff0c;2017年成为Apache顶级项目。 源码是java写的。 高性能&#xff0c;低延迟&#xff0c;高可靠。历经多次双十一大促&#xff0c;整体很稳定。 RocketMQ对比其他mq的优势 对比kafka和Rabbitmq&#…

[错误记录] --- clickhouse报错Decimal value is too small

java操作clickhouse数据库&#xff0c;执行insert的时候&#xff0c;报错&#xff1a; Exception in thread "main" ru.yandex.clickhouse.except.ClickHouseException: ClickHouse exception, code: 69, host: xx.xx.xx.xxx, port: xxxx; Code: 69, e.displayText(…

[错误记录] --- rocketmq批量消费设置参数的问题

rocketmq想支持批量消费&#xff0c;于是便设置以下参数&#xff1a; consumer.setConsumeMessageBatchMaxSize(1000);这样是正确的&#xff0c;但由于业务要求&#xff0c;还想再设置大点&#xff0c;于是设置成这样&#xff1a; consumer.setConsumeMessageBatchMaxSize(10…

rocketmq批量消费

rocketmq默认就是可以批量消费的&#xff0c;但需要设置多个参数一起配合。 我们只需要知道他是怎么消费的&#xff0c;就可以很精准的设置他的批量消费参数。 我们看看DefaultMQPushConsumer源码中的这几个参数&#xff1a; /*** 消费消息线程&#xff0c;最小数目*/private …

阿波罗配置中心(apollo)的个人看法

阿波罗应该是近几年比较火的一个分布式配置中心了&#xff0c;说说我个人的理解&#xff0c;希望对一些人有用吧。 首先从使用者的角度想 我们怎么用配置中心的&#xff1f; 1.得有个页面&#xff0c;能有权限管理&#xff0c;能有创建配置key-value。 在阿波罗中&#xff…

架构师成长之路

一个架构师要掌握的最基本的数学知识 知识点备注log三角函数二项式定理多项式合并极限幂函数泰勒级数傅里叶级数概率

消息队列(4):Kafka

介绍 kafka是一个支持分布式的消息系统&#xff0c;基于发布/订阅模式。 kafka由LinkedIn公司开发&#xff0c;2010年成为Apache顶级项目。 源码是由java写的。 基本概念 1、Broker kafka集群中的每台机器&#xff0c;都叫一个broker. 2、Topic&#xff08;主题&#xff0…

clickhouse的ReplacingMergeTree引擎实战

学习ReplacingMergeTree引擎&#xff0c;首先你得了解clickhouse的MergeTree引擎&#xff0c;因为ReplacingMergeTree引擎是MergeTree引擎的一个扩展版引擎&#xff0c;他拥有和MergeTree一样的功能&#xff0c;同时新增了一个删除相同主键数据的功能。 我们知道&#xff0c;cl…

clickhouse 分片

我们知道mysql数据库如果想做分片&#xff0c;需要使用第三方组件&#xff0c;这是因为mysql在设计之初就没有太多考虑分布式等问题。而clickhouse作为新生代性能之王&#xff0c;分片也是必须的功能。基本上从2015年之后的各种数据库也罢&#xff0c;框架也罢&#xff0c;都开…

[记录] ---阿里云java.io.IOException: Connection reset by peer的问题

项目部署到阿里云&#xff0c;突然报错&#xff0c;频繁的打印堆栈信息&#xff0c;一开始是把堆内存打满导致服务一直重启&#xff0c;调大堆内存后就不影响正常服务了&#xff0c;但还是一直打堆栈&#xff0c;虽说日志会自动清理&#xff0c;但一直打这个信息着实不好看。 最…

数据库缓存双写一致性的一些个人想法

数据库缓存双写一致性的一些个人想法 有这么个问题&#xff0c;还是经典面试题&#xff1a; 说我们有个数据库&#xff0c;他的读请求特别多&#xff0c;以至于要在数据库上加一层缓存来抗压&#xff0c;这个都能理解吧。 这里的缓存&#xff0c;可能是和数据库一样的数据&am…