/*
* Test.java
*
* Created on 2007-9-19, 15:28:49
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
//package lbf.script;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import javax.script.Bindings;
import javax.script.Invocable;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.swing.JFrame;
/**
*
* @author hadeslee
*/
public class Test {
public static void main(String[] args)throws Exception
{
//根据js的后缀名生成一个解析JS的脚本解析引擎
ScriptEngine engin=new ScriptEngineManager().getEngineByExtension("js");
//查询一下这个引擎是否实现了下面很实用的接口
System.out.println(engin instanceof Invocable);
//声明两个对象,传入到JS里面去
JFrame jf=new JFrame("test");
List<String> list=new ArrayList<String>();
//得到挷定的键值对象,把当前的两个JAVA对象放进去
Bindings bind=engin.createBindings();
bind.put("jf",jf);
bind.put("list",list);
//把挷下的键值对象放进去,作用域是当前引擎的范围
engin.setBindings(bind, ScriptContext.ENGINE_SCOPE);
//用引擎执行一段写在JS文件里面的代码
Object obj=engin.eval(new FileReader("test.js"));
//这个时候返回值当然 是null了
System.out.println(obj);
//把当前的引擎强制转为Invocable,这样就可以调用定义在JS文件里面的一个一个函数了
Invocable in=(Invocable)engin;
//得到了从 JS里面返回来的对象
List<String> l=(List<String>)in.invokeFunction("getNames");
System.out.println(l);
//调用一下定义在JS里面的另一个函数
in.invokeFunction("testJS");
//最后调用一个函数,该函数可以使我们前面定义的窗体显示出来
in.invokeFunction("doSth");
}
}
test.js
function doSth(){
jf.setSize(500,300);
jf.setVisible(true);
jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
}
function getNames(){
list.add("doSth");
list.add("getNames");
return list;
}
function testJS(){
print('Helloworld!');
}
分享到:
相关推荐
在实际应用中,C#通过调用Noesis.Javascript库的API,可以轻松地执行JavaScript脚本,如下所示: ```csharp using Noesis.Javascript; // 创建JavaScript引擎实例 var engine = new JavascriptEngine(); // 注册...
2. **语法解析**:通过JavaScript引擎提供的API,如Jurassic或ClearScript,解析JS代码,形成抽象语法树(AST)。AST是代码的结构化表示,可以从中提取函数定义、变量声明和参数等信息。 3. **函数和参数识别**:...
Rhino脚本引擎是JavaScript的一个开源实现,它能够运行JavaScript风格的脚本代码,并且可以通过这个引擎调用Java语言编写的方法。Rhino脚本引擎可以嵌入Java应用程序中执行,其最大的特点是脚本的修改不需要重启Java...
1. **语法解析器**:这是引擎的核心,负责将输入的脚本代码转化为抽象语法树(AST)。这一步通常通过词法分析和语法分析完成,其中词法分析将源代码分解为一系列的标记,而语法分析则将这些标记按照语法规则组合成...
jj.SetValue("tt", new test_class()) jj.SetValue("datetime", new Func(() => DateTime.Now)) ...上次发了一个V8引擎别人说用不了说是 linux 上面的,,这次发个完整源码+例子,,,在说用不了,那就自己问题呢。,
以上就是JavaScript脚本的核心知识点,理解并掌握这些概念将有助于你编写高效、健壮的JavaScript代码。在实际开发中,还需要不断学习和了解新的API、框架和最佳实践,以适应快速发展的前端技术生态。
特别是对于那些热衷于游戏服务器开发的朋友们,了解并研究《冒险岛》079版本的服务端源码和JavaScript(JS)脚本,无疑是一次深入学习游戏后台技术的机会。本文将针对"冒险岛079服务端源码比尔尚未修复版本"中的JS...
三、在node.js环境下运行命令node app.js就可以把当前IP解析到域名上。 特别说明: 解析类型:ipv4是A,ipv6是AAAA,详见...
V8 JavaScript脚本引擎是Google Chrome浏览器的核心组成部分,它负责高效地执行JavaScript代码。V8以其卓越的性能和对Web应用程序的支持而闻名,其源码分析对于深入理解JavaScript的运行机制以及高性能编程技术至关...
1,引入二维码解析的js插件llqrcode.js 2,解析的图片,这里采取的是上传图片解析(可以采用扫一扫输出的图片解析) //获取图片路径 let getObjectURL = function(file){ let url = null ; if (window....
脚本引擎是能够解析并执行特定脚本语言的软件,例如JavaScript、Python、Perl、Ruby等。它们在云环境中运行,提供了快速响应和动态执行的能力,尤其适用于轻量级任务和临时性工作流。 2. 功能特性: - 多语言支持...
4. JavaScript脚本解析:JavaScript脚本解析是指Rhino引擎解析JavaScript脚本的过程。 5. 客户端JavaScript脚本:客户端JavaScript脚本是指在客户端浏览器中运行的JavaScript脚本。 6. 扩展Rhino引擎:扩展Rhino引擎...
JosunScript 脚本组件是一个采用ATL技术编写的高效稳定的脚本解析器。 能让你的CS模式程序(Vc、VB、Delphi、BC等)轻松解析VbScript,JavaScript脚本语言。 大大增强你的程序逻辑处理的灵活性和程序的交互能力,轻松...
用途:js解析apk包信息,这只是暴露出去的接口文件,另外还有几个内部文件,不过还有问题,等改好再上传吧
- 开发者可以根据项目需求,自定义脚本引擎的解析规则或添加新的脚本语言支持。 - 通过性能监控和调优,提高脚本执行效率,减少不必要的资源消耗。 6. **安全考量** - 脚本执行可能会引入安全风险,如注入攻击。...
在.NET开发中,有时我们需要在C#代码中执行JavaScript脚本来处理特定的逻辑,例如解析HTML、与浏览器交互或者利用JavaScript库的功能。这种跨语言的调用通常通过以下几种方式实现: 1. **JScript .NET**: .NET...
此压缩包“js脚本源码及示例”包含两个部分,即“js脚本源码及示例.1.rar”和“js脚本源码及示例.2.rar”,这很可能是为了提供多个JavaScript脚本实例,帮助学习者深入理解和应用JavaScript技术。 首先,我们来了解...
这对于网页采集技术提出了新的挑战,特别是如何有效地从动态网页中提取出由JavaScript脚本动态生成的URL。 #### 二、JavaScript引擎简介 **2.1 JavaScript语言简介** JavaScript是一种轻量级的、解释型的脚本语言...
标题提到的"html parser 应用ie的内置parser可以解析动态脚本html",意味着我们将讨论如何利用MSHTML库,这个库是Internet Explorer的核心组件,支持HTML、CSS、JavaScript等网页技术,因此能够处理包含动态脚本的...
《用户来源鉴定JS脚本 v1.0》是一款专门用于追踪和分析网站用户来源的JavaScript脚本。在互联网营销和数据分析领域,了解用户如何找到并访问我们的网站是至关重要的。这款脚本通过嵌入到网页中,可以帮助我们收集并...