当前位置:首页 > 技术文章 > 正文内容

Java之在.java文件类中调用js方法

arlanguage1个月前 (03-27)技术文章12

此场景,适用于无Html页面,纯后台调式脚本语言。

首先创建一个js文件,放在resource下的静态文件下

//  供java进行调用
function hello(str) {

    var copeStr = str + " 123";

    return copeStr;

}

然后,创建测试类

public class TestJs {

    //  获取js文件的绝对路径
    private static String jsName = "src/main/resources/static/test.js";

    public static void main(String[] args) {

        try {

            //  todo 初始化 JavaScript 引擎
            ScriptEngineManager manager = new ScriptEngineManager();
            ScriptEngine engine = manager.getEngineByName("javascript");

            engine.eval("load('" + jsName + "');");

            /**
             * 这里我们将 engine 强制转换为 Invocable 类型,使用 invokeFunction 方法将参数传递给脚本引擎。
             * invokeFunction 这个方法使用了可变参数的定义方式,可以一次传递多个参数,并且将脚本语言的返回值作为它的返回值。
             */
            Invocable inv = (Invocable) engine;

            String str = "Hello Js";

            //  将 Java 对象转成 JavaScript 对象
            //Object Java = engine.get("Java");

            //ScriptObjectMirror bytes_som = (ScriptObjectMirror) inv.invokeMethod(Java, "from", str);

            //  进行 js 方法的调用,hello 为 js文件里的方法名
            Object json = inv.invokeFunction("hello",str);

            System.out.printf(json.toString());

        } catch(Exception e) {

            e.printStackTrace();

        }

    }

}

运行测试类,输出:

Hello Js 123

测试成功。

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/3610.html

标签: java文档
分享给朋友:

“Java之在.java文件类中调用js方法” 的相关文章

到 2024 年了,全球仍有 76.4% 的网站在用「已死」的 PHP!

如今资历稍长的程序员,提到 PHP 可能都会联想到一个梗:“PHP 是最好的语言。”这个梗并非出自别处,正源自于 PHP 自己的官方文档:早在 2001 年 7 月,PHP 文档中就有一句“PHP is the best language for web programming(PHP 是世界上最好...

Nginx系列:图片过滤处理

http_image_filter_module是Nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高;磁盘有限不想生成多余的图片文件的前提下,就可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息,由于是实时计算的结果,所以网站...

nginx支持跨域的方法 nginx配置支持跨域

在nginx的配置文件中添加允许跨域的响应头。参考nginx官方文档,添加响应头的方法如下:在conf文件的server作用域中添加如下响应头:server { listen 80; # 其他配置... # 允许跨域 add_header Access-Control-Allow-...

在AWS上组合使用ELB和Nginx Plus获得更多特性

使用AWS的客户经常问我们,对于负载均衡,到底是使用AWS的ELB还是Nginx Plus?Amazon曾经发布了一个白皮书来说明如何在AWS上配置Nginx Plus。本文将聚焦在选择Nginx Plus或者ELB时需要考虑的因素方面,也会讨论一些更适合于组合使用Nginx Plus和ELB的情形...

平稳运行半年的系统宕机了,记录一次排错调优的全过程

(一)前言最近发生了一件很让人头疼的事情,已经上线半年且平稳运行半年系统在年后早高峰的使用时发生了濒临宕机的情况。访问速度特别慢,后台查到大量time_wait的连接,从代码层面到架构层面到网络层面排查了几天几夜,总算是有了结果。(二)架构、问题描述先简单描述一下这个系统的架构,公网域名对应的公网I...

Nginx 最全操作——nginx配置(2)

nginx 配置基本结构main # 全局配置,对全局生效 ├── events # 配置影响 nginx 服务器或与用户的网络连接 ├── http # 配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置 │ ├── upstream # 配置后端服务器具体地址,负...