标签: rhino

犀牛怎么了?它还在积极发展吗?

最新版本发布于2008-03-06.这是怎么回事?它还在积极发展吗?有没有替代品?

java scripting-language rhino

8
推荐指数
1
解决办法
652
查看次数

你如何从Rhino返回退出代码?

我正在使用java来运行用Rhino编写的命令行实用程序,但如果有错误,我需要将该错误返回给shell,以便处理停止.如何将错误代码从Rhino传回shell?

rhino

8
推荐指数
1
解决办法
1467
查看次数

用实际文件名替换Java Rhino(JSR223)中的<Unknown Source>

在我的代码中,所有脚本都包含在.js文件中.每当其中一个脚本包含错误时,我就会得到:

javax.script.ScriptException:sun.org.mozilla.javascript.internal.EcmaError:ReferenceError:未定义"nonexistant".(<未知来源>#5)在第5行的<未知来源>中

我不知道的是<Unknown Source>.多个文件在一个ScriptContext中,并且很难找到错误.它看起来也很糟糕.

有没有办法用实际文件名替换<Unknown Source>?我看到的所有方法都没有支持传递File对象,所以我真的很困惑.

java rhino jsr223

8
推荐指数
2
解决办法
2155
查看次数

犀牛的jquery

我想通过这个链接证明的jQuery加载到犀牛这里.但我不断收到以下错误:

line 1086: uncaught JavaScript runtime exception: TypeError: Cannot call method "importNode" of null
Run Code Online (Sandbox Code Playgroud)

我认为jQuery无法完全加载 - 但我不知道为什么.我使用的是作者在源代码管理中发布的相同index.html文件.

这是我的Rhino控制台的跟踪:

js> load( "/temp/env.js" );
js> window.location = '/temp/index.html';
/temp/index.html
js> load( "/temp/jquery.js" );
js: "/temp/jquery.js", line 1086: uncaught JavaScript runtime exception: TypeError: Cannot call method "importNode" of null
    at /temp/jquery.js:1086
    at /temp/jquery.js:1079
    at /temp/jquery.js:16
    at <stdin>:41
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

javascript jquery rhino

8
推荐指数
1
解决办法
6259
查看次数

在Java和(Rhino)Javascript之间传递常见类型

我不清楚在使用(Mozilla)Rhino时如何在Javascript和Java之间转换类型的规则.

文档中有一些细节String:

重要的是要记住Java字符串和JavaScript字符串不一样[...] Rhino在减少两种类型之间的差异方面提供了一些帮助.首先,您可以将JavaScript字符串传递给需要Java字符串的Java方法,Rhino将执行转换.实际上,我们在上一个示例中调用java.lang.String构造函数时看到了这个特性.如果java.lang.String类尚未定义它们,Rhino也会使JavaScript方法可用于Java字符串

但其他人呢?如果我将javascript Number传递给期望的Java方法int,double(Integer或者Double)它会被转换吗?怎么样long/ Long?(它不适合a Double,因此不适合JS编号?

返回这些值的Java方法怎么样?

然后是Boolean/ boolean.是JS常量truefalse转换,并从相应的Java值?我见过像这样的代码

java.lang.Boolean.TRUE.booleanValue()
Run Code Online (Sandbox Code Playgroud)

从JS使用,所以至少有些人认为不是.

我看过Mozilla Rhino的文档,但是如果我错过了一些明显的东西,请指出.

javascript java rhino type-conversion

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

从XUL运行JavaScript代码的单元测试 - 什么和如何

我正在写一个XUL应用程序.它不是Firefox扩展,而是通过XULrunner使用的独立应用程序.我的目的是在我的开发过程中采用TDD,我将RhinoUnit视为我的单元测试框架.无论如何我会尝试使用它,但没有太多关于测试XUL应用程序的文档.有些人谈论使用UxU - 但仅限于Firefox插件 - 和Mochitest - 如果你只想测试Mozilla.

我的问题是:是否有人用单元测试编写了一些XUL应用程序?您使用了什么工具,如果是我提到过的人,您是如何使用它的?

javascript unit-testing xul rhino rhino-unit

8
推荐指数
1
解决办法
468
查看次数

使用require.js和Java/Rhino解析模块

我正在尝试让require.js在服务器端使用Java 6和Rhino加载模块.

我能够自己加载require.js就好了.犀牛可以看到这个require()功能.我可以说,因为Rhino抱怨说当我换成其他require()东西时它找不到这个功能requireffdkj().

但是当我试图要求一个简单的JS时,就像 hello.js

var hello = 'hello';
Run Code Online (Sandbox Code Playgroud)

使用以下任一方法:

require('hello');
require('./hello');
Run Code Online (Sandbox Code Playgroud)

它不起作用.我明白了

Caused by: javax.script.ScriptException: sun.org.mozilla.javascript.internal.JavaScriptException: [object Error] (<Unknown source>#31) in <Unknown source> at line number 31
    at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:153)
    at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:167)
    at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:247)
Run Code Online (Sandbox Code Playgroud)

我把我hello.js放在Java类路径的顶部.那也是我的地方require.js.我试着移动到hello.js我能想到的任何地方,包括我的硬盘驱动器的根目录,用户目录的根目录,运行我的Java应用程序的目录等等.没有任何作用.

我查看了CommonJS规范(http://wiki.commonjs.org/wiki/Modules/1.0),它说顶级ID(如hello)从"概念模块名称空间根"解析,而相对ID(喜欢./hello)解决调用模块.我不确定这些基线在哪里,我怀疑这是问题所在.

有什么建议?我甚至可以使用Rhino的require.js吗?

编辑:我认为我需要根据Pointy的建议在下面的评论中设置环境,我也尝试过评估r.js.(我在评估之后尝试进行评估require.js,之后再次进行评估require.js.)在任何一种情况下我都会收到错误:

Caused by: javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "arguments" is not defined. (<Unknown source>#19) in <Unknown source> at line number …
Run Code Online (Sandbox Code Playgroud)

javascript java rhino require requirejs

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

Rhino中的XMLHttpRequest?

最近我一直在使用Java的ScriptEngine API,即javascript引擎,它使用Rhino来处理所有事情.我总结了Rhino没有XMLHttpRequest的事实.我想知道是否有人知道可能的方法吗?

javascript java xmlhttprequest rhino

8
推荐指数
1
解决办法
5187
查看次数

在Android中的服务中运行JavaScript

我有用JavaScript编写的业务逻辑,这个代码与其他非Android应用程序共享.

在Android中的服务中使用此JavaScript中的函数的最佳方法是什么?

AFAIK有2种选择?

  • V8内置于标准的WebView和超高速,没有额外的apk膨胀.
  • 犀牛,开始使用Android很棘手?

关注V8/Webview,当我尝试使用任何功能访问WebView时,我得到了;

All WebView methods must be called on the UI thread. Future versions of WebView may not support use on other threads.
Run Code Online (Sandbox Code Playgroud)

警告被注意到,它现在甚至都不起作用.当我设置webviewclient时,加载URL后我什么也得不到.

我的问题分为三部分;

1)有没有人在没有UI线程的webview中运行javascript有什么成功?

2)如何从javascript中的函数获得结果,webview界面"addJavascriptInterface"是否支持加载参数并将其发送回java?

3)如果上述任何一种情况都是不可能的......我想我会去得到Rhino,任何提示都会受到赞赏,我只看到一些博客抱怨有关在Android上运行的问题,并想知道是否有一个"转到"版本的android维护在某处.

javascript android rhino android-service android-webview

8
推荐指数
1
解决办法
1657
查看次数

Rhino:如何在没有线程关联的情况下创建上下文

怎么可能(如果有办法)我启动上下文而不附加当前线程?我的意思是,我实际上正在与Akka集成,我有办法保证与Akka的演员的线程亲和力,但我想减少线程数,但这样做我失去了线程亲和力,从而失去了Rhino的上下文.只是为了澄清,每个参与者都将拥有一个上下文,该上下文将负责回答针对Rhino编译代码(preStart由于代码回收而编译)的请求.

假设我有这样的代码:

class ScriptActor(script: String) extends Actor {
  var scriptContext: Context = _
  var scriptScope: Scriptable = _

  override def receive: Receive = {
    case ScriptActor.Run(env) =>
      // 2: Here context's of current thread is asked with Context.getCurrentContext()
      val func: RhinoFunction = scriptScope.get("$run", scriptScope)
        .asInstanceOf[RhinoFunction]

      val result = func.call(scriptContext, scriptScope, scriptScope, Array(env.noSpaces, signaler))

      println(result)
  }


  override def postStop(): Unit = {
    Context.exit()

    super.postStop()
  }

  override def preStart(): Unit = {
    // 1: Here context is bound to the …
Run Code Online (Sandbox Code Playgroud)

scala rhino akka

8
推荐指数
0
解决办法
113
查看次数