JavaアプリケーションにGoogle JavaScriptエンジンV8を埋め込むためのソリューションを探しています。
解決策はありますか?
J2V8 https://github.com/eclipsesource/J2V8 を使用できます。 Maven Central でも利用できます。
以下は、Hello、World!です。 J2V8を使用したプログラム。
package com.example;
import com.eclipsesource.v8.V8;
public class EclipseCon_snippet5 {
public static class Printer {
public void print(String string) {
System.out.println(string);
}
}
public static void main(String[] args) {
V8 v8 = V8.createV8Runtime();
v8.registerJavaMethod(new Printer(), "print", "print", new Class<?>[]{String.class});
v8.executeVoidScript( "print('Hello, World!');" );
v8.release(true);
}
}
Pom.xmlでプラットフォームを指定する必要があります。 J2V8は現在、win32_x86、macosx_x86_64、Android_x86、およびAndroid_armv7lをサポートしています。異なるのは、ネイティブバインディングとバンドルされているV8のビルド前バージョンが原因です。
たとえば、MacOSでは使用できます。
<dependencies>
<dependency>
<groupId>com.eclipsesource.j2v8</groupId>
<artifactId>j2v8_macosx_x86_64</artifactId>
<version>2.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
Google V8 JavascriptエンジンをベースにJava Scripting API(JSR223)ベースを実装しています。
実際に簡単な方法はありませんが、 Rhino または [〜#〜] jni [〜#〜] をお勧めします。前者の方が簡単ですが、v8ではなく、後者は難しくて気難しいですが、v8です。
または、別のv8プロセスを使用して、Javaと対話することもできます。