Java调用js

Java调用JavaScript主要依赖于内置的ScriptEngineManager类,它可以管理并执行Nashorn和JavaScript等脚本引擎。通过Invocable接口,Java能够调用已定义的JS函数。在实际项目中,这一功能可用于动态生成HTML网页,如结合js模板框架生成响应内容,也可用于执行动态计算代码,例如在OA或财务软件中自定义工资计算公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java调用js其实是java SE自带的,并不需要任何第三方的东西。

首先来看看java自带的命令行工具jjs

 

这是个java的脚本工具,使用起来和node.js很相似,提供的功能跟node.js有所不同。Jjs是一个javascript工具,可以调用java的一些类,方法和属性。

jjs里面可以写各种javascript代码。但是浏览器自带的javascript对象是没有的,比如windowdocument对象。

所以这提供了一个js调用java的解决方案,但这不是我们这篇博文的重点。重点在于,如何用java调用js

Java提供了一个类ScriptEngineManager这个类的作用就是管理脚本引擎,常见的脚本引擎有Nashornjavascript。通过引擎管理器的getEngineByName方法可以获取到脚本引擎,脚本引擎就可以执行各种脚本了。

引擎的实例可以转换为Invocable对象,这个对象可以调用引擎中已经定义的js函数。如下面的代码:

public static void main(String[] args) throws ScriptException, NoSuchMethodException {

  ScriptEngineManager sem = new ScriptEngineManager();

	  ScriptEngine engine = sem.getEngineByName("javascript");

	  engine.eval("function add(a,b){return a+b;}");

	  Invocable invocable = (Invocable)engine;

	  System.out.println(invocable.invokeFunction("add", 1,2));

}

脚本引擎是JDK7新加的功能,JDK6或者以下版本是用不了这个功能的。

在代码中可以看到引擎的eval方法可以执行js代码,还支持js文件的执行,用起来非常方便。

在实际的项目开发中它有什么作用呢?

实际项目开发中它可能有以下作用:

1用来生成HTML网页,现在有很多流行的js模板框架,可以利用这种动态执行这些js模板引擎来生成html网页返回给客户端。比如在web开发中,可以用该技术结合xtemplate.js来生成html,返回给浏览器。

用来执行动态代码,比如在OA项目或者财务软件中,工资的计算时一个动态的公式。我可以用这个技术来讲公司的计算方式做成脚本,管理人员可以在网页上修改这个脚本,修改工资的计算方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值