javascript嵌入java_在Java类方法中嵌入JavaScript代码段

我有一个Java程序,可以打开,读取和写入多个文件.它还包含复杂的逻辑格式.

现在,我在jsfiddle上编写了一个简单的javascript here,可以为我做一些树遍历和解析,这比用Java实现要容易得多.

我现在面临的挑战是如何将这个Javascript脚本“嵌入”到我的Java方法中.我主要是Java程序员.

Java方法的伪代码是这样的:

String input = “ABC” //its more complex than ABC

String o1= null;

//JavaScript script begins,

//Javascript evaluates the Java string input

//Javascript output is assigned to Java o1

o1 = output;

//Javascript script ends

//maniputate and process Java string o1 - which is not null

解决方法:

使用Java 8相当简单.可以使用Nashorn.

import javax.script.Invocable;

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

public class JsTest {

@org.junit.Test

public void test() throws Exception {

ScriptEngine jsEngine = new ScriptEngineManager().getEngineByName("nashorn");

jsEngine.eval("var say = function(name) {return 'Hello ' + name;}");

Invocable jsScript = (Invocable) jsEngine;

Object result = jsScript.invokeFunction("say", "XYZ");

System.out.println(result);

}

}

评估方法具有各种可能的参数.也可以从文件加载脚本.

标签:tree-traversal,javascript,java

来源: https://codeday.me/bug/20191121/2052797.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值