`

Rhino,一个不错的Javascript引擎

 
阅读更多

package co.test;  
  
import java.io.FileReader;  
import java.io.LineNumberReader;  
  
import org.mozilla.javascript.Context;  
import org.mozilla.javascript.Function;  
import org.mozilla.javascript.Scriptable;  
  
public class JSExploration  
{  
     private Context cx;  
  
     private Scriptable scope;  
  
     public JSExploration()  
     {  
         this.cx = Context.enter();  
         this.scope = cx.initStandardObjects();  
     }  
  
     public Object runJavaScript(String filename)  
     {  
         String jsContent = this.getJsContent(filename);  
         Object result = cx.evaluateString(scope, jsContent, filename, 1, null);  
         return result;  
     }  
  
     private String getJsContent(String filename)  
     {  
         LineNumberReader reader;  
         try 
         {  
             reader = new LineNumberReader(new FileReader(filename));  
             String s = null;  
             StringBuffer sb = new StringBuffer();  
             while ((s = reader.readLine()) != null)  
             {  
                 sb.append(s).append("\n");  
             }  
             return sb.toString();  
         }  
         catch (Exception e)  
         {  
             // TODO Auto-generated catch block  
             e.printStackTrace();  
             return null;  
         }  
     }  
  
  
     public Scriptable getScope()  
     {  
         return scope;  
     }  
  
     public static void main(String[] args)  
     {  
         String filename = System.getProperty("user.dir") + "/jsmap.js";  
         JSExploration jsExploration = new JSExploration();  
         Object result = jsExploration.runJavaScript(filename);  
         Scriptable scope = jsExploration.getScope();  

         Function sum = (Function) scope.get("sum", scope); 
         Function isPrime = (Function)sum.call(Context.getCurrentContext(), scope, sum, new Object[] {2,8}); 
         Object ss = isPrime.call(Context.getCurrentContext(), sum, isPrime, new Object[] {2,8}); 
         System.out.println(Context.toString(ss)); 

     }  
} 

 

 

function  sum(x, y) { 
// this.formulaeObject = null; 
// this.formulaeObject["vager"] = function (c, d) { 
// return (c + d)/2; 
// }; 
var vager = 1000; 
return function (x,y){return x + y + vager;} ; 
}
 

 

分享到:
评论

相关推荐

    Rhino脚本引擎技术介绍

    Rhino脚本引擎是JavaScript的一个开源实现,它能够运行JavaScript风格的脚本代码,并且可以通过这个引擎调用Java语言编写的方法。Rhino脚本引擎可以嵌入Java应用程序中执行,其最大的特点是脚本的修改不需要重启Java...

    基于Rhino引擎的低侵入式JavaScript内置对象扩展方法.pdf

    1. Rhino引擎:Rhino引擎是一个JavaScript解析引擎,可以解析JavaScript脚本并生成网页信息。 2. 低侵入式设计方法:低侵入式设计方法是一种设计方法,旨在提高Rhino引擎的性能和可扩展性。 3. DOM树:DOM树是一种...

    Rhino_Debugger(Rhino引擎的JS调试工具)

    Rhino_Debugger Rhino引擎的JS调试工具 直接可运行Jar

    rhino-1.7.7.1.jar(Rhino for java)

    Rhino的jar包。 Rhino 是开源的 JavaScript 引擎,是完全基于 Java 实现,几乎可以使用 JavaScript 完成 Java 所有的工作。

    java运行js脚本引擎-----rhino

    Java运行JavaScript脚本引擎Rhino是一个强大的工具,它允许Java应用程序执行JavaScript代码并利用JavaScript的灵活性和动态性。Rhino是Mozilla基金会开发的一个开源项目,它完全用Java编写,因此可以无缝集成到Java...

    FF的js引擎rhino源码,java编写

    Rhino,全称为Mozilla Rhino,是一款由Mozilla基金会开发的JavaScript引擎,它以Java语言实现,因此具有很高的可移植性。Rhino在JavaScript的世界里扮演着重要角色,因为它将JavaScript的动态性和灵活性带入了Java...

    Pure JS (6.2):结合 Rhino 和 Junit GUI 测试 JS

    标题 "Pure JS (6.2):结合 Rhino 和 Junit GUI 测试 JS" 提到的是一个关于使用纯JavaScript(Pure JS)与Rhino JavaScript引擎以及JUnit进行图形用户界面(GUI)测试的实践方法。Rhino是Mozilla基金会开发的一个...

    Mozilla Rhino 介绍

    Rhino项目的起源可以追溯到1997年,当时Netscape计划开发一个纯Java版本的Navigator浏览器,并因此需要一个用Java实现的JavaScript引擎——即“Javagator”。这便是Rhino的前身。最初,Rhino通过将JavaScript编译成...

    rhino+javafx实现js脚本调试

    首先,Rhino作为一个JavaScript引擎,它的主要职责是解析和执行JavaScript代码。它支持ECMAScript标准,并且具有高效的性能,特别适合在Java应用中执行JavaScript。Rhino还提供了一些用于调试的功能,如错误处理、源...

    rhino-bytearray:在Rhino JavaScript引擎中使用字节数组

    在Rhino JavaScript引擎中使用字节数组 注意 由该代码制成的字节数组可以与Java中的字节数组不同,但它似乎可以像Java字节数组一样完美地工作。 用 let b = ( new ByteArray ( size ) ) . init ( ) ;

    深入浅出Rhino:Java与JS互操作

    《深入浅出Rhino:Java与JS互操作》是一本专注于探讨如何在Java环境中使用Rhino JavaScript引擎进行交互的书籍。Rhino是Mozilla基金会开发的一个开源JavaScript解释器,它完全用Java编写,使得JavaScript能够在Java...

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

    Rhino,由Mozilla基金会开发,就是这样一个JavaScript引擎,它允许Java程序直接执行JavaScript代码。本篇文章将深入探讨如何在Java项目中使用Rhino来执行JavaScript,并展示从Java调用JavaScript函数以及从...

    Pure JS (6.1):使用 Rhino Shell 和 Debugger 运行和调试 JS

    Rhino是Mozilla开发的一个开源JavaScript引擎,它允许JavaScript在Java平台上运行,而Rhino Shell则是一个命令行工具,可以用来交互式地执行JavaScript脚本。Debugger则是用于检查和优化代码的工具,这对于理解和...

    一个java的jar包可以集成到IDE中做JAVASCRIPT的测试。

    这是因为Java提供了一个名为Rhino或Nashorn的JavaScript引擎,它们允许Java代码执行JavaScript脚本。Rhino是早期的JavaScript引擎,而Nashorn是Java 8引入的一个更现代的选项,尽管在Java 11中已被废弃。这些引擎为...

    rhino 17_3

    Rhino,一个在Java平台上广泛使用的开源JavaScript引擎,是Mozilla基金会的一个重要项目。这个强大的工具为开发者提供了用JavaScript编写Java应用程序的可能性,极大地扩展了JavaScript的应用领域。Rhino 17_3 版本...

    env.rhino.1.2.js

    Rhino就是JavaScript引擎,它的目的就是实现Java与JavaScript的互操作性。rhino-1.7R1.jar Envjs一个纯js方式在无浏览器环境下模拟浏览器的行为。envjs-1.2.js 一般网站js中都会用到jauery,所以还用了jauery.js

    org.mozilla.javascript-1.7.2.jar

    首先,"org.mozilla.javascript-1.7.2.jar"是Mozilla的Rhino JavaScript引擎的一个版本。Rhino是一个开源的JavaScript解释器,由Mozilla基金会维护,它允许JavaScript代码在Java平台上运行。Rhino以其高效的性能和...

    org.mozilla.javascript-1.7.2.jar.zip

    Mozilla的JavaScript引擎,也称为Rhino,是一个开源的JavaScript解释器,由Mozilla基金会开发并维护。Rhino是基于Java平台的,能够直接运行在Java虚拟机(JVM)上,使得JavaScript代码能够与Java代码无缝集成。Rhino...

    rhino-1.7.7.1.jar 及源码

    Rhino 是开源的 JavaScript 引擎,是完全基于 Java 实现,几乎可以使用 JavaScript 完成 Java 所有的工作。 官网网址:https://developer.mozilla.org/zh-CN/docs/Mozilla/Projects/Rhino/Download_Rhino

Global site tag (gtag.js) - Google Analytics