标签: rhino

测试内部类

如何将单元测试写入内部类???

tdd unit-testing rhino

5
推荐指数
2
解决办法
4045
查看次数

Rhino,从多个javascript文件中添加代码

我正在使用Rhino在Java应用程序中嵌入一些javascript.我正在关注Rhino网站上的示例,通过调用Context的evaluateString方法执行脚本并将实际脚本作为String传递.

我有一大堆现有的javascript代码,我想利用它.我不想将它全部连接成一个巨大的String并将其传递给evaluateString.我宁愿能够加载代码,以便我可以从我传递给evaluateString的代码中调用它(有点像AddCode方法在Microsoft的脚本控制中工作).我想添加代码,就像我目前可以使用ScriptableObject.putProperty方法添加变量一样.

有没有办法做到这一点?有人可以提供代码段或文档链接.谢谢!

javascript java scripting rhino

5
推荐指数
1
解决办法
3580
查看次数

脚本java:从外部文件导入类

我想导入一个我已经在外部文件夹中编写的类,例如:我的类Example.java位于c:\class\Example.java我的脚本中,就像使用一样

var importedClass = new JavaImporter("c:\\class\\Example.java");
Run Code Online (Sandbox Code Playgroud)

要么

importClass("c:\\class\\Example.java");
Run Code Online (Sandbox Code Playgroud)

这是在ScriptEngine rhino的脚本
中我该怎么做?

java scripting mozilla rhino jdk1.6

5
推荐指数
1
解决办法
3760
查看次数

如何在Java程序中调用Rhino编译的JavaScript方法(类文件)?

我将以下JavaScript文件"test.js"编译成"test.class":

var test = (function () {
  var that = {};

  that.addNumbers = function (a, b) {
    return a+b;
  };

  return that;
}());
Run Code Online (Sandbox Code Playgroud)

我想在简单的Java程序"run.java"中调用已编译的JavaScript函数"test.addNumbers(1,2)",如下所示:

public class run {

  public static void main(String[] args) throws Exception {

    Context cx = Context.enter();

    try {
      Scriptable scope = cx.initStandardObjects();

      // HOW TO CALL THE METHOD, Test.addNumbers(1,2)?  Please help me!

    } finally {
      Context.exit();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法,但都失败了.我阅读了Rhino教程并检查了许多文章和示例,但他们只展示了如何从命令行或源文件"test.js"调用JavaScript方法.我需要从编译的"test.class"文件中调用该方法.

非常感谢您的帮助!

javascript java embed compiler-construction rhino

5
推荐指数
1
解决办法
2760
查看次数

可以在WebKit shell中使用Mozilla的Rhino JS引擎吗?

我的印象是WebKit是一个更通用的框架,可以插入多个JavaScript引擎.最突出的是,我们同时拥有Apple的JavaScriptCore和Google的V8.

有没有人试图插入Mozilla的Rhino?如果他们没有,你能否指点我所涉及的一些简短资源?(我不太可能由我自己承担这个,但我感兴趣的是如何在这一领域的WebKit的扩展点的结构,只是为了好奇.)

另外,如果我对WebKit,JavaScriptCore和V8之间关系的理解不正确,那么让我直截了当就会得到一个很好的答案.

javascript webkit rhino

5
推荐指数
1
解决办法
414
查看次数

适用于Android的脚本层 - LibGDX

我已经在LibGDX上编写完整的游戏引擎了一段时间,并且几乎用Javascript编写了每个游戏对象(我创建了一个基于复合的游戏对象系统).对于JS的解释,我使用了我的ubuntu系统上的Rhino引擎,效果非常好,但是当我尝试在Android上运行它时,我根本无法编译它,而是我读过的,这是因为谷歌没有使用支持Rhino的标准Java实现,但现在我看到了对SL4A项目的支持,但是我一直在寻找一个与Android兼容的简单Rhino jar文件,但在查看了下载之后,我所有的发现是APK文件,似乎没有图书馆,从我读过的,APK被认为是一个模板项目,但我怎么能用我的现有代码没有jar包?也许我完全忽略了这一点?

javascript android jar rhino sl4a

5
推荐指数
1
解决办法
1688
查看次数

在javascript代码中使用Rhino解析器来解析javascript中的字符串

我是Rhino解析器的新手.我可以在javascript代码中使用此rhino解析器来提取任何html文件中的javascript代码的抽象语法树.如果是这样我应该开始这个.这是用于分析AST的代码,用于计算javascript中使用的关键字和单词之间的比率,识别常见的解密方案,以及计算某些类函数调用的出现次数,例如fromCharCode() ,eval()和一些字符串函数,这些函数通常用于解密和执行逐个下载漏洞利用程序.

javascript rhino

5
推荐指数
1
解决办法
1456
查看次数

Java将选择哪个JS脚本引擎?

ScriptEngineManager.getEngineByName查找并为给定名称创建一个ScriptEngine。

Rhino将自己注册为“ js”,“ rhino”,“ JavaScript”,“ javascript”,“ ECMAScript”和“ ecmascript”

Nashorn将自己注册为“ nashorn”,“ Nashorn”,“ js”,“ JS”,“ JavaScript”,“ javascript”,“ ECMAScript”和“ ecmascript”

如果我使用Nashorn和Rhino均已注册的“ js”之类的名称,将使用哪个脚本引擎?它将在Java 8和Rhino上使用Nashorn吗?

java rhino scriptengine nashorn

5
推荐指数
1
解决办法
1180
查看次数

在Javascript中实现自己的TrustManager(Rhino引擎)

我正在尝试用Javascript实现我自己的TrustManager,但是我不知道如何实现它。

在Java中,我具有以下内容:

    TrustManager[] trustAllCerts = new TrustManager[]{
    new X509TrustManager() {
        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
            return null;
        }
        public void checkClientTrusted(
            java.security.cert.X509Certificate[] certs, String authType) {
        }
        public void checkServerTrusted(
            java.security.cert.X509Certificate[] certs, String authType) {
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

我尝试对X509TrustManager使用以下代码:

js> obj = { getAcceptedIssuers : function() { return null; }, checkClientTrusted: function() { }, checkServerTrusted: function() { } }
[object Object]
js> x509tm = new javax.net.ssl.X509TrustManager(obj)
adapter1@2eee9593
js>
Run Code Online (Sandbox Code Playgroud)

然后,我不知道如何创建TrustManager。如何使用Javascript(Rhino 1.6版本7 2008 01 02)执行此操作?

javascript java rhino

5
推荐指数
1
解决办法
410
查看次数

Nashorn:JavaScript表达式求值会抛出使用lambda公开的函数的类强制转换异常

我有一个以下类,其中一个类型为Long

package com.nm.poc;

public class JSLong{

private Long longValue;

public Long getLongValue() {
    return longValue;
}

public void setLongValue(Long longValue) {
    this.longValue = longValue;
}

public Long testLongValue(Long longValue){
    return longValue;
}

}
Run Code Online (Sandbox Code Playgroud)

我按照以下方式从JavaScript调用方法testLongValue

package com.nm.poc;

import java.util.function.Consumer;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class Main {
    public static void main(String[] args) throws Exception {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("nashorn");

    JSLong jsLong = new JSLong();

    //WORKS
    engine.put("jsLong", jsLong);     
    engine.eval("print(jsLong.testLongValue(20))");

    //Throws ClassCast Integer to Long
    engine.put("jsLong2", (Consumer<Long>)jsLong::testLongValue);
    engine.eval("print(jsLong2(20))"); …
Run Code Online (Sandbox Code Playgroud)

java lambda rhino nashorn java-scripting-engine

5
推荐指数
1
解决办法
506
查看次数