Java执行JavaScript代码_java

我们要在Java中执行JavaScriptMethods.js中的execute(s1,s2)方法,JavaScriptMethods.js文件内容如下:

function execute(s1, s2){
  return s1 + s2;
}

首先需要定义一个接口,这个接口中给出与要执行的JavaScript方法一样的方法签名,我们定义接口Methods,它的内容如下:

/**
 * 接口中的方法签名必须与要执行的JavaScript方法一致
 * @author yuncong
 *
 */
public interface Methods {
  public String execute(String s1,String s2);
}

然后,就可以用脚本引擎执行JavaScriptMethods.js中execute(s1,s2)方法了,具体内容写在下面的ExecuteScript类中的:

import java.io.FileReader;

import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class ExecuteScript {
  public static void main(String[] args) {
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("js");
    try {
      String path = ExecuteScript.class.getResource("").getPath();
      System.out.println(path);
      // FileReader的参数为所要执行的js文件的路径
      engine.eval(new FileReader(path + "JavaScriptMethods.js"));
      if (engine instanceof Invocable) {
        Invocable invocable = (Invocable) engine;
        Methods executeMethod = invocable.getInterface(Methods.class);
        System.out.println(executeMethod.execute("li", "yuncong"));
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

运行ExecuteScript类,输出如下:

/C:/Users/yuncong/git/login/target/classes/executescript/
liyuncong

以上就是本文的全部内容,希望对大家的学习有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
javascript
java执行javascript、java中执行javascript、java代码转javascript、java执行js代码、java代码执行顺序,以便于您获取更多的相关知识。

时间: 2024-08-01 21:14:52

Java执行JavaScript代码_java的相关文章

使用Rhino让java执行javascript的方法实例_java

下载Rhino https://developer.mozilla.org/en-US/docs/Rhino 把js.jar拷贝到项目工程 实现从Java中执行js中的函数.从js中调用Java中的方法,代码: 复制代码 代码如下: public class MainActivity extends Activity {     @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCre

JAVA执行javascript方法

之前在一次机缘巧合的情况下,需要时用JAVA执行js方法,查阅了一些文档,找到了相关解决方法,这里和大家分享一下. 在JDK1.6中为我们提供了一个ScriptEngineManager类,ScriptEngineManager 为 ScriptEngine 类实现一个发现和实例化机制,还维护一个键/值对集合来存储所有 Manager 创建的引擎所共享的状态.此类使用服务提供者机制枚举所有的 ScriptEngineFactory 实现. ScriptEngineManager 提供了一个方法,

使用java执行定时任务示例_java

下面是个简单的例子,利用java实现距离run后一个小时后执行任务! 复制代码 代码如下: Timer timer = new Timer();TimerTask task = new TimerTask() {@Overridepublic void run() { System.out.println("待执行的任务..."); }};timer.schedule(task, 60*60*1000);

C#执行Javascript代码的几种方法

一.开源项目 Javascript .NET 地址: http://javascriptdotnet.codeplex.com/ 它是Google Chrome V8引擎在.NET上的封装,功能完善,性能相对较高,推荐使用! (缺点就是asp.net web应用上,好象会报错) 示例代码: using Noesis.Javascript; using System; using System.Collections.Generic; namespace JsCSharp { class Prog

在Flash中执行javascript代码的示例教程

教您如何在flash中运行js脚本,按照示例完成,以http://方式进行访问,点按钮,即可查看效果... 在flash里一个按钮上写了如下代码,然后把flash放在网页里面,以http://方式进行访问,点按钮,即可查看效果: 以下是代码: on(release){ getURL("javascript:alert('111')")  }

python使用PyV8执行javascript代码示例分享_python

安装相应的库,我使用的是PyV8 需要注意的是里面写的function函数需要用()括起来 复制代码 代码如下: import PyV8 class Test():     def js(self):        ctxt = PyV8.JSContext()        ctxt.enter()               func = ctxt.eval('''(function(){return '###'})''')        print func()        print

java冒泡排序算法代码_java

复制代码 代码如下: /** * 原理: * 进行n次循环,每次循环从后往前对相邻两个元素进行比较,小的往前,大的往后 *  * 时间复杂度: * 平均情况:O(n^2) * 最好情况:O(n) * 最坏情况:O(n^2) * * 稳定性:稳定 **/public class 冒泡排序 {     public int[] bubbleSort(int[] a, int n) {        for (int i = 0; i < n; i++) {            int flag =

java hashtable实现代码_java

复制代码 代码如下: public class HashTable{   private String[] name;    //关键字   private int sum;    //容量   public static void main(String[] args){    //测试        HashTable ht = new HashTable();        ht.add("chenhaitao");        ht.add("zhongcheng&

Java、JavaScript、Oracle、MySQL中实现的MD5加密算法分享_java

MD5,全称为 Message Digest Algorithm 5(消息摘要算法第五版).详情请参考 维基百科:MD5 MD5加密后是一个字节数组, 但我们一般是取其十六进制的字符串表示法,当然,十六进制数字符串是区分大小写,在 mysql数据库,Java,和JavaScript语言中,一般是使用小写的字符串来表示, 而在 Oracle数据库官方提供的包中,返回的是大写字符串,这算是一个坑,如果你想要执行多次 md5,可能需要转换为小写. 相关的代码如下: 1. Java版MD5 MD5Uti