博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 调用 Javascript 函数的范例
阅读量:5109 次
发布时间:2019-06-13

本文共 1927 字,大约阅读时间需要 6 分钟。

在Java 7 以后,可以在Java代码中调用javascript中的函数,请看下面的例子:

package com.lee;import java.io.FileNotFoundException;import java.io.FileReader;import java.util.Scanner;import javax.script.Bindings;import javax.script.Invocable;import javax.script.ScriptContext;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;/** * * @author liyanxue */public class JavaInvokeJS {    public static void main(String[] args) throws FileNotFoundException, ScriptException, NoSuchMethodException {        ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript" );        Bindings bind = engine.createBindings();        bind.put( "factor", 0);        engine.setBindings(bind, ScriptContext. ENGINE_SCOPE);        // 输入方式        /*         Scanner input = new Scanner(System.in);         while (input.hasNextInt()) {         int first = input.nextInt();         int second = input.nextInt();         System.out.println("输入的参数是:" + first + ", " + second);         engine.eval(new FileReader("/Users/ liyanxue/model.js"));         if (engine instanceof Invocable ) {         Invocable in = (Invocable ) engine;         // 执行 js函数         Double result = (Double) in.invokeFunction("formula", first, second);         System.out.println("运算结果是:" + result.intValue());         }         }         */        int first = 23;        int second = 7;        System. out.println("输入的参数是:" + first + ", " + second);        engine.eval( new FileReader("/Users/liyanxue/model.js" ));        if (engine instanceof Invocable) {            Invocable in = (Invocable) engine;            // 执行js函数            Double result = (Double) in.invokeFunction( "formula", first, second);            System. out.println("运算结果是:" + result.intValue());        }    }}

/Users/liyanxue/model.js里的代码:

function formula(var1, var2) {     return var1 + var2 + factor;}

 

转载于:https://www.cnblogs.com/IcanFixIt/p/4764380.html

你可能感兴趣的文章
Aptana环境下配置xdebug
查看>>
IIS7:通过脚本来配置ftp站点
查看>>
No.012:Integer to Roman
查看>>
Tomcat简介
查看>>
解决Install failed uid changed
查看>>
Mac OS command line TestNG - “Cannot find class in classpath” error
查看>>
LA 3641 (置换 循环的分解) Leonardo's Notebook
查看>>
org.apache.common.math3 学习笔记
查看>>
access检测表没有的字段,添加之
查看>>
相对论的时间计算
查看>>
最大堆算法
查看>>
spring4新特性 泛型依赖注入
查看>>
mysql-备份恢复
查看>>
leetcode 90. 子集 II(Subsets II)
查看>>
Linux最大打开文件描述符数
查看>>
leetcode: Count and Say
查看>>
Access VBA-用Find或Seek方法实现查找符合条件的记录
查看>>
jquery Ajax标准规范写法
查看>>
MySQL Order By实现原理分析和Filesort优化
查看>>
C语言的那些小秘密之【链表(一)】
查看>>