标签: rhino

Javascript引擎优势

我现在对JavaScript引擎感到困惑.我知道V8是一个大问题,因为它将JavaScript编译为本机代码.

然后我开始阅读Mozilla SpiderMonkey,据我所知,它是用C语言编写的,可以编译JavaScript.那么这与V8有什么不​​同呢?如果这是真的,为什么Firefox不这样做呢?

最后,Rhino是否真的将JavaScript编译为Java字节代码,以便您获得Java的所有速度优势?如果没有,为什么人们在桌面上编写脚本时不能运行V8?

javascript v8 rhino spidermonkey javascript-engine

57
推荐指数
3
解决办法
3万
查看次数

从java代码调用外部javascript函数

通过使用Java Scripting API,我可以在Java中执行JavaScript.但是,有人可以解释我需要添加到此代码中的内容,以便能够调用C中的函数:/Scripts/Jsfunctions.js

import javax.script.*;

public class InvokeScriptFunction {
public static void main(String[] args) throws Exception {
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("JavaScript");

    // JavaScript code in a String
    String script1 = (String)"function hello(name) {print ('Hello, ' + name);}";
    String script2 = (String)"function getValue(a,b) { if (a===\"Number\") return 1; 
                     else return b;}";
    // evaluate script
    engine.eval(script1);
    engine.eval(script2);

    Invocable inv = (Invocable) engine;

    inv.invokeFunction("hello", "Scripting!!" );  //This one works.      
 }
}
Run Code Online (Sandbox Code Playgroud)

javascript java rhino function-call

37
推荐指数
1
解决办法
10万
查看次数

如何在沙盒中使用Rhino for Java运行Javascript?

我们的Java应用程序的一部分需要运行由非开发人员编写的javascript.这些非开发人员使用javascript进行数据格式化.(主要是简单的逻辑和字符串连接).

我的问题是如何设置这些脚本的执行以确保脚本错误不会对应用程序的其余部分产生重大负面影响.

  • 需要防范无限循环
  • 防止产生新线程.
  • 限制对服务和环境的访问
    • 文件系统(示例:如果心怀不满的脚本编写者决定删除文件)
    • 数据库(同样删除数据库记录)

基本上我需要设置javascript范围,只包括他们需要的内容,而不是更多内容.

javascript java sandbox rhino

36
推荐指数
3
解决办法
1万
查看次数

Narwhal和Node.js之间的差异?

我是Node.js的新手,我一直在阅读Narwhal,这是一个基于Rhino的框架.

我的问题:

  1. 如果我使用Node.js,我可以使用Narwhal及其库/模块吗?
  2. Narwhal IO中的库/模块是不是被封锁了(为什么Node.js得到了这么大的人气)?
  3. Node.js只用于创建Web服务器,还是用于创建通用应用程序,就像Narwhal一样?

javascript rhino node.js narwhal

35
推荐指数
2
解决办法
9123
查看次数

什么是Rhino Script Engine的生命周期和并发语义

我对(Rhino)脚本引擎和相关类的生命周期和并发语义感兴趣.特别:

  1. Bindings应该是线程安全的?
  2. 是否应该允许多个线程共享一个ScriptEngine实例?
  3. ...或者每个线程是否应构建一个短期实例?
  4. ......还是把它们放在游泳池里?
  5. 如果多个线程同时调用会发生什么ScriptEngine.eval(...)
  6. 对于同样的问题CompiledScript实例
  7. 使用生成的接口实现的相同问题Invocable.getInterface(...)
  8. 据推测,放置在Bindings中的对象遵循Java的垃圾收集.那些没有在绑定中结束的对象的垃圾收集呢?

java concurrency lifecycle rhino

30
推荐指数
1
解决办法
4034
查看次数

从Rhino切换到Nashorn

我有一个Java 7项目,它使用Javascript来编写各种功能的脚本.到目前为止,我使用Rhino作为脚本引擎.我现在想转向Java 8,这也意味着我将取代Nashorn的Rhino.

Nashorn与Rhino的兼容性如何?我是否可以将其用作替代品,或者我是否可以预期我的某些脚本将不再工作并且需要移植到新引擎?是否有Nashorn不支持的Rhino常用功能?

rhino java-8 nashorn

28
推荐指数
3
解决办法
2万
查看次数

JavaScript(Rhino)使用库或包含其他脚本

在JDK6中,有没有办法在文件中加载多个脚本,并让一个脚本引用另一个脚本的方法?有点像"包括"?

javascript java rhino

27
推荐指数
4
解决办法
2万
查看次数

犀牛与蜘蛛侠

我注意到ubuntu 10.04删除了spidermonkey包.犀牛看起来仍然在那里.犀牛和蜘蛛侠之间有什么区别(除了他们写的是什么语言).他们为什么要删除蜘蛛侠?

javascript rhino spidermonkey ubuntu-10.04

24
推荐指数
2
解决办法
1万
查看次数

使用Rhino而不是ScriptEngine在Java中运行Javascript代码

基于讨论将未知日期格式的字符串表示转换为Java中的Date,我想Date在我的App-Engine项目中使用JavaScript 函数.但是,ScriptEngine不适用于App-Engine.所以我需要一点帮助才能转换成Rhino.这是我需要转换的ScriptEngine代码:

ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine engine = scriptEngineManager.getEngineByName("JavaScript");
String script = "var date = new Date('" + dateInUnknownFormat + "'); var timestamp = date.getTime();";
engine.eval(script);
long timestamp = ((Double) engine.get("timestamp")).longValue();
Run Code Online (Sandbox Code Playgroud)

以下没有奏效

private static long parseDateUsingRhino(String dateInUnknownFormat){
    Context mozillaJsContext = Context.enter();
    Scriptable scope = mozillaJsContext.initStandardObjects();
    String script = "var date = new Date('" + dateInUnknownFormat + "'); var timestamp = date.getTime();";
    Object obj = mozillaJsContext.evaluateString( scope, script, "TestScript", 1, null );
    Double timeDouble = …
Run Code Online (Sandbox Code Playgroud)

javascript java google-app-engine rhino scriptengine

22
推荐指数
1
解决办法
1454
查看次数

如何开始使用Oracle的Nashorn JS Engine进行编码,何时在OpenJDK中替换Rhino?

我正在寻找一种方法来开始使用Oracle的新Nashorn JavaScript引擎.我已经DL了最新的OpenJDK 8(b65),看起来Rhino仍然是唯一包含的脚本引擎.

任何人都知道Nashorn何时(或在哪个版本中)将取代OpenJDK中的Rhino?或者甚至更好,我可以在哪里获得包含它的JDK?我知道Netbeans已经编写了一个调试器来使用它,只是不确定他们从哪里获得了库/代码来开始编写它.

有人有链接吗?

谢谢.

java openjdk rhino nashorn

20
推荐指数
3
解决办法
1万
查看次数