将Java类放入nashorn的全局范围内

问题描述 投票:0回答:1

我像这样使用沙盒Nashorn:

ScriptEngine engine = new NashornScriptEngineFactory().getScriptEngine(
            new String[]{"--no-java", "--no-syntax-extensions", "--optimistic-types=true", "--language=es6"},
            null);

但是我想在我的JavaScript中使用单个特定的类。怎么做?例如,我有一个课:

class MyClass
{
    public void m1()
    {
        System.out.println("This is m1");
    }
    public void m2()
    {
        System.out.println("This is m2");
    }
}

而且我想在脚本中使用它,如

let a=new MyClass();
a.m1();
a.m2();

该怎么做?谢谢

java nashorn
1个回答
0
投票

您的语法很接近。您只需要在new MyClass()之前添加一行。

let MyClass = Java.type('my.package.MyClass');
// then
let a = new MyClass(); // <-- like that
© www.soinside.com 2019 - 2024. All rights reserved.