Jak osadzić wersję V8 w aplikacji Java?

Szukam rozwiązania do osadzenia silnika JavaScript Google V8 w mojej aplikacji Java.

Masz jakieś rozwiązania?

Author: Stephan, 2011-06-16

3 answers

Możesz użyć J2V8 https://github.com/eclipsesource/J2V8 jest nawet dostępny wMaven Central .

Poniżej jest Hello, World! program wykorzystujący 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);
    }

}

Będziesz musiał określić swoją platformę w swoim pom.xml. J2V8 obsługuje obecnie win32_x86, macosx_x86_64, android_x86 i android_armv7l. powodem, dla którego są one różne, jest natywne wiązania i pre-build Wersja V8, która jest dołączona.

Na przykład na MacOS można użyj.

<dependencies>
    <dependency>
        <groupId>com.eclipsesource.j2v8</groupId>
        <artifactId>j2v8_macosx_x86_64</artifactId>
        <version>2.0</version>
        <scope>compile</scope>
    </dependency>
</dependencies>
 20
Author: irbull,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-09 14:40:23

Może mógłbyś wypróbować Jav8, które implementują Java Scripting API (JSR223) bazujące na silniku JavaScript Google V8. Pracuję nad nim od tygodni i może obsługiwać większość prostych scen.

Http://code.google.com/p/jav8/

 15
Author: Flier Lu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-27 16:17:02

Nie ma tak naprawdę żadnego prostego sposobu, aby to zrobić, ale sugerowałbym Rhino lub JNI . Pierwszy jest łatwiejszy, ale nie v8, drugi jest twardy i wybredny, ale v8.

LUB możesz użyć oddzielnego procesu v8 i rozmawiać z nim za pomocą Javy.

 5
Author: Dhaivat Pandya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-10 20:58:57