java 执行javascript_java中执行javascript案例

java函数输出js的hello world:

import javax.script.Invocable;

import javax.script.ScriptEngine;

import javax.script.ScriptEngineFactory;

import javax.script.ScriptEngineManager;

import javax.script.ScriptException;

public class Maub {

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

//引擎管理器

ScriptEngineManager m = new ScriptEngineManager();

//获取引擎

ScriptEngine engine = m.getEngineByName("JavaScript");

//执行javascript代码

engine.eval("function hello(name){print('hello '+name)}");

//Javascript实现了invocable调用接口

Invocable inv = (Invocable) engine;

//调用函数hello,传入world

inv.invokeFunction("hello","world");

}

}

调用文件里的js脚本:

import java.io.FileNotFoundException;

import javax.script.Invocable;

import javax.script.ScriptEngine;

import javax.script.ScriptEngineFactory;

import javax.script.ScriptEngineManager;

import javax.script.ScriptException;

public class Maub {

public static void main(String args[]) throws ScriptException, NoSuchMethodException, FileNotFoundException{//引擎管理器

ScriptEngineManager m = new ScriptEngineManager();

//获取引擎

ScriptEngine engine = m.getEngineByName("JavaScript");

//执行javascript代码

engine.eval(new java.io.FileReader("E:\\Code\\Java\\src\\getpwd.js"));

Invocable inv = (Invocable) engine;

String arg[] = {"MDwwDQYJKoZIhvcNAQEBBQADKwAw","fot123456"};

//使用Invocable调用脚本函数,传入String参数

System.out.println(inv.invokeFunction("getpwd",arg));

}

}