Стандартный перенаправление KotlinScriptEngine в API javax.script - PullRequest
0 голосов
/ 22 апреля 2020

Я выполняю kotlin сценарии, используя javax.script API. Я хочу захватить вывод и напечатать журналы позже.

Я могу сделать это для механизма сценариев nashorn, но то же самое не работает на KotlinScriptEngine.

    public void testExampleNashorn() throws ScriptException {
        ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
        ScriptContext context = engine.getContext();
        StringWriter writer = new StringWriter();
        context.setWriter(writer);

        engine.eval("print(\"Welocme to java worldddd\")");

        String output = writer.toString();

        System.out.println("Script output: " + output);
    }

Вывод для Nashorn

Script output: Welocme to java worldddd

Тот же фрагмент кода при настройке на kotlin, как показано ниже

    public void testExampleKotlin() throws ScriptException {
        ScriptEngine engine = new ScriptEngineManager().getEngineByName("kotlin");
        ScriptContext context = engine.getContext();
        StringWriter writer = new StringWriter();
        context.setWriter(writer);

        engine.eval("println(\"Welocme to java worldddd\")");

        String output = writer.toString();

        System.out.println("Script output: " + output);
    }

Выход для kotlin

Welocme to java worldddd
Script output: 
null

Я использую kotlin версия 1.3.72 Любая помощь высоко ценится. Спасибо.

...