This fork is for adding the ability to interrupt infinite JS loops in client code for my game, Robot Recharge
To build, good luck. The Maven jar task works, but the produced libraries need to be manually inserted into the generated archive. The GH Actions workflow should create all of the native libraries.
To test new builds, first delete /tmp/duktape4j-1.2.1/*
to remove old extracted
binaries.
Java binding for Duktape 2.5, a very compact embedded ECMAScript (JavaScript) engine.
duktape4j is Java port of duktape-android.
Oracle & OpenJDK Java 8, 11.
Both the JRE and the JDK are suitable for use with this library.
This library is suitable for use in production systems.
- Windows 8 & Windows 10 (64-bit) (MSVC 2017)
- Ubuntu (64-bit) (gcc)
- macOS Catalina (10.15) (clang)
duktape4j is regularly tested on github actions.
To use the official release of duktape4j, please use the following snippet in your pom.xml
file.
Add the following to your POM's <dependencies>
tag:
<dependency>
<groupId>io.webfolder</groupId>
<artifactId>duktape4j</artifactId>
<version>1.2.1</version>
</dependency>
duktape4j-1.2.1.jar - 1189 KB
public class HelloWorld {
public static interface Console {
default void info(String message) {
System.out.println(message);
}
}
public static void main(String[] args) {
try (Duktape duktape = Duktape.create()) {
duktape.set("console", Console.class, new Console() { });
duktape.evaluate("console.info('hello, world!')");
}
}
}
Licensed under the Apache License.
Note: The included C code from Duktape is licensed under MIT and duktape-android licensed under Apache.