https://github.com/vontikov/java-lua
Executes Lua scripts from Java
https://github.com/vontikov/java-lua
java library lua lua-binding
Last synced: 25 days ago
JSON representation
Executes Lua scripts from Java
- Host: GitHub
- URL: https://github.com/vontikov/java-lua
- Owner: vontikov
- License: mit
- Created: 2021-05-03T11:38:57.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-05-15T12:05:40.000Z (about 5 years ago)
- Last Synced: 2025-02-28T15:53:14.027Z (about 1 year ago)
- Topics: java, library, lua, lua-binding
- Language: C++
- Homepage:
- Size: 84 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# java_lua
Provides the ability to execute [Lua 5.4.3](https://www.lua.org/about.html)
scripts from Java.
Lua scripts can call registered in a namespace Java functions:
```
final String script =
"r = java:fn(42, 'xyz')\n" +
"print('call result: ', r) -- prints 100\n" +
"r = ns:func('abc', 42, true, false)\n" +
"print('call result: ', r) -- prints 200\n";
try (final LuaEngine e = new LuaEngine()) {
// register function in the default namespace 'java'
e.registerFunction("fn", (Object... args) -> {
// do something
...
// return call result to the script
return 100;
});
// register external function in the custom namespace 'ns'
e.registerFunction("ns", "func", (Object... args) -> {
// do something
...
// return call result to the script
return 200;
});
// load and execute
e.execute(script);
// ... or load
e.load(script);
// and execute
e.execute();
...
// execute again
e.execute();
}
```
See Java unit tests for the details
## Build
```
gradle build
```
## Distribution
```
gradle assembleDist
```
## Run
The `java.library.path` system property should contain path to the folder with
`libjl.so`.