java读取js代码 java读取html文件

Java调用JS脚本里的方法;本例子使用了JDK 以上的javax script包 通过Invocable接口实现JAVA调用JS脚本里的方法 本例中调用分为内部执行脚本和外部执行脚本 外部执行脚本分为不带参数调用和带参数调用 主要采用invokeFunction方法调用ObjectinvokeFunction(String name Object… args)用于调用脚本中定义的顶层程序和函数ObjectinvokeMethod(Object thiz String name Object… args)对以前的脚本执行中已经编译的脚本对象(以 ScriptEngine 的状态保持)调用某一方法package de javase;import javax script Invocable;import javax script ScriptEngineManager;import javax script ScriptEngine;import java io File;import java io Reader;import java io FileReader;public class AjavaInvokingFunction {public static void main(String[] args) {// 获得一个JavaScript脚本引擎 也可以是ECMAScript脚本引擎ScriptEngineManager manager = new ScriptEngineManager()ScriptEngine engine = manager getEngineByName( JavaScript )String titlescript = function sayTitle() {println( 源码实例 使用javax script调用JS脚本里的方法 )println( )} ;try {
// 调用内部脚本执行engine eval(titlescript)// 转换为InvocableInvocable invocableEngine = (Invocable) engine;// 不带参数调用sayTitle方法invocableEngine invokeFunction( sayTitle )// 调用外部脚本执行// 创建JS文件的File对象 并读入流File functionscript = new File( ajava js )Reader reader = new FileReader(functionscript)// 开始执行ajava js里的程序engine eval(reader)// 不带参数调用sayHello方法invocableEngine invokeFunction( sayHello )// 带参数调用sayHello方法invocableEngine invokeFunction( sayHello mark )} catch (Exception e) {e printStackTrace()}}}ajava js文件function sayHello(){sayHello(null)}function sayHello(name){if(name==null){println( 欢迎你!请注册Ajava会员 )}else{println(name独立JAVA社区欢迎你 )}}运行结果(控制台)源码实例 使用javax script调用JS脚本里的方法 lishixinzhi/Article/program/Java/hx/201311/26436
如何通过java代码调用jsJDK1.6版添加了新的ScriptEngine类 , 允许用户直接执行js代码 。
在Java中直接调用js代码
不能调用浏览器中定义的js函数 , 会抛出异常提示ReferenceError: “alert” is not defined 。
package com.sinaapp.manjushri;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;/*** 直接调用js代码*/
public class ScriptEngineTest {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
try{
engine.eval("var a=3; var b=4;print (a b);");
// engine.eval("alert(\"js alert\");");// 不能调用浏览器中定义的js函数 // 错误,会抛出alert引用不存在的异常
}catch(ScriptException e){
e.printStackTrace();
}
}
}
如何在java中调用js方法在Java中调用js文件中的function,传入调用参数,并获取返回值
js文件中的merge函数将两个参数a,b相加,并返回c 。
// expression.js
function merge(a, b) {
c = a * b;
return c;
}
在Java代码中读取js文件,并参数两个参数,然后回去返回值 。
package com.sinaapp.manjushri;
import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
/*** Java调用并执行js文件,传递参数,并活动返回值** @author manjushri*/
public class ScriptEngineTest {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
String jsFileName = "expression.js";// 读取js文件
FileReader reader = new FileReader(jsFileName);// 执行指定脚本
engine.eval(reader);
if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine;// 调用merge方法,并传入两个参数
// c = merge(2, 3);
Double c = (Double)invoke.invokeFunction("merge", 2, 3);
System.out.println("c = "c);
}
reader.close();
}
}
输出结果:
c = 5.0
【java读取js代码 java读取html文件】java读取js代码的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于java读取html文件、java读取js代码的信息别忘了在本站进行查找喔 。

    推荐阅读