如何在 Java 中将 .js 文件加载到 Rhino 上下文中

2023-11-23

这是我的情况:

我可以访问 Java 类中的 Rhino Context 对象。我想读入一堆 .js 文件并将它们传递到 Rhino 上下文以对它们进行评估。我对在脚本上下文中使用 .js 文件中的函数并不真正感兴趣,而只是对在 .js 文件中声明的变量可用(这是一个工具验证类型的问题)。

理想情况下,我会读入并尝试一次评估每个文件,而不是逐行评估。我注意到 Context 中有一个方法(参见犀牛API)称为evaluateReader()。我的第一个猜测是我应该获取我想要加载的所有文件,遍历所有文件,然后调用此方法,为每个文件传递某种读取器对象,太棒了,现在它们都在我的脚本上下文中。

因此,假设我走在正确的轨道上,谁能告诉我在 Java 脚本上下文中使用 .js 文件是否有任何好的实践可以遵循,或者是否有更好的方法,或者你做了一些其他方式等等?

这里不寻找实现细节,只是从其他人那里得到的反馈,他们可能已经在他们的一些代码中做到了这一点。使用 Java 脚本语言对我来说是新鲜事。


你知道吗Rhino 在 Java 6 中发布?

String javaScriptExpression = "sayHello(name);";
Reader javaScriptFile = new StringReader(
    "function sayHello(name) {\n"
        + "    println('Hello, '+name+'!');\n" + "}");

ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory
    .getEngineByName("JavaScript");
ScriptContext context = engine.getContext();
context.setAttribute("name", "JavaScript",
    ScriptContext.ENGINE_SCOPE);

engine.eval(javaScriptFile);
engine.eval(javaScriptExpression);

如果你想在 Java 5 中使用它,你必须download单独的 API。您可以从以下位置获取许多流行脚本语言的引擎脚本.dev.java.net.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Java 中将 .js 文件加载到 Rhino 上下文中 的相关文章

  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 在具有相同属性名称的不同数据类型上使用 ModelMapper

    我有两节课说Animal AnimalDto我想用ModelMapper将 Entity 转换为 DTO 反之亦然 但是对于具有相似名称的一些属性 这些类应该具有不同的数据类型 我该如何实现这一目标 动物 java public class
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 如何知道浏览器空闲时间?

    如何跟踪浏览器空闲时间 我用的是IE8 我没有使用任何会话管理 也不想在服务器端处理它 这是纯 JavaScript 方法来跟踪空闲时间 并在达到一定限制时执行一些操作 var IDLE TIMEOUT 60 seconds var idl
  • put方法中的Angularjs文件上传不起作用

    我有一个简单的待办事项应用程序 我试图在其中上传照片和单个待办事项 现在我已经创建了这个工厂函数来负责待办事项的创建 todosFactory insertTodo function todo return http post baseUr
  • 将 onclick 事件应用于页面加载时不存在的元素

    我将列表样式设置为看起来像选择框 并且当用户单击列表中的元素时我想触发一个函数 但是该元素是通过加载的AJAX因此 当页面加载并且我无法绑定时不存在onclick事件到它onDomReady 如果我把它作为一个普通的选择列表 我可以只标记一
  • 将 window.location 传递给 Flask url_for

    我正在使用 python 在我的页面上 当匿名用户转到登录页面时 我想将一个变量传递到后端 以便它指示用户来自哪里 发送 URL 因此 当用户单击此锚链接时 a href Sign in a 我想发送用户当前所在页面的当前 URL
  • Java直接内存:在自定义类中使用sun.misc.Cleaner

    在 Java 中 NIO 直接缓冲区分配的内存通过以下方式释放 sun misc Cleaner实例 一些比对象终结更有效的特殊幻像引用 这种清洁器机制是否仅针对直接缓冲区子类硬编码在 JVM 中 或者是否也可以在自定义组件中使用清洁器 例
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • 如何在 Maven 中显示消息

    如何在 Maven 中显示消息 在ant中 我们确实有 echo 来显示消息 但是在maven中 我该怎么做呢 您可以使用 antrun 插件
  • Aurelia - 仅 HTML 自定义元素的内联定义

    我的 Aurelia 视图模型中有一个递归对象 如下所示 Class BottomlessPit Name string MorePits BottomlessPit null 因此 我想在 Aurelia 视图中使用递归模板 它只会在一个
  • Outlook 加载项,无法读取未定义的属性“BeginRequestEventArgs”

    我使用 Visual Studio 开发了 Outlook 插件 我的插件有一个按钮 用于填充会议邀请正文中的详细信息并添加所需的与会者 这在 99 的情况下都有效 但是 时不时地它会给我下面的 JavaScript 错误 Uncaught
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 弹出窗口的动态高度取决于内容,可能吗?

    是否有可能获得一个宽度始终为 400px 的弹出窗口 但根据弹出窗口中的内容动态高度 我已经看到了这个 但不知道如何将其应用到弹出窗口 调整 iframe 的宽度高度以适应其中的内容 https stackoverflow com ques
  • 如何修复“sessionFactory”或“hibernateTemplate”是必需的问题

    我正在使用 Spring Boot JPA WEB 和 MYSQL 创建我的 Web 应用程序 它总是说 sessionFactory or hibernateTemplate是必需的 我该如何修复它 我已经尝试过的东西 删除了本地 Mav
  • 如何为 Imagus 悬停缩放扩展开发自定义过滤器?

    当我读到关于悬停缩放是邪恶的 http www reddit com r YouShouldKnow comments 1wjrc8 ysk that the hover zoom extension is spyware 哎呀 有两篇文章
  • 如何:带有 onclick 的 div 位于另一个带有 onclick 的 div 中

    只是一个简单的问题 我遇到了 div 与 onclick javascript 之间的问题 当我点击内部 div 时 它应该只触发它的 onclick javascript 但外部 div 的 javascript 也会被触发 用户如何点击
  • D3 将现有 SVG 字符串(或元素)追加(插入)到 DIV

    我到处寻找这个问题的答案 并找到了一些我认为可能有用的资源 但最终没有让我找到答案 这里有一些 外部SVG http bl ocks org mbostock 1014829 嵌入SVG https stackoverflow com qu
  • DOM 解析器 Chrome 扩展内存泄漏

    问题 我开发了一个扩展程序 可以拦截 Web 请求 获取 Web 请求来源的 HTML 并对其进行处理 我使用 DOMParser 来解析 HTML 并且意识到 DOMParser 正在导致大量内存泄漏问题 最终导致 chrome 扩展崩溃

随机推荐

  • Android 中的光标是否从 0 或 1 引用列?

    我正在使用 SQLite 数据库 并且成功返回游标 但我想知道游标引用的是像数组一样以 0 开头的列还是仅引用 1 开头的列 Android 中 SQLite 数据库中的游标引用从 0 开始的列
  • 根据类的当前实现,通过直接枚举 ConcurrentDictionary 将 ConcurrentDictionary 复制到普通 Dictionary 是否安全?

    TL DR 是否可以单独枚举一个ConcurrentDictionary 发出相同的密钥两次 是否目前的实施 of the ConcurrentDictionary类 NET 5 允许这种可能性吗 我有一个ConcurrentDiction
  • 如何在Python Requests库中实现重试机制?

    我想为Python添加重试机制Requests库 因此使用它的脚本将重试非致命错误 目前我确实认为三种错误是可以恢复的 HTTP 返回代码 502 503 504 找不到主机 现在不太重要 请求超时 在第一阶段 我确实想每分钟重试指定的 5
  • Avro Schema 激发 StructType

    这实际上与我的相同上一个问题 但使用 Avro 而不是 JSON 作为数据格式 我正在使用 Spark 数据框 它可以从几个不同的架构版本之一加载数据 Version One namespace com example avro type
  • 安装没有 package.json 文件的 Cordova 插件

    我正在尝试使用 Cordova CLI 7 安装 Cordova 插件 该插件没有 package json 文件 因此将其添加到我的项目时会抛出错误 我尝试使用plugman 转换config xml 文件 它在 Android 上运行良
  • Okhttp 检查文件大小而不下载文件

    okhttp常见的例子涵盖了get和post的场景 但我需要获取带有 url 的文件的文件大小 因为我需要通知用户 并且只有在获得他们的批准后才能下载文件 目前我正在使用这段代码 URL url new URL http server co
  • Netty Channel.write 不写入消息

    我正在尝试使用 Netty 迈出第一步 为此我在 Netty 上编写了简单的服务器 在 oio plain TCP 上编写了简单的客户端 客户端发送随机文本数据包 并且必须收到 Ack 消息 查看处理程序方法 Override public
  • 在调用 save() 之前必须手动分配此类的 ids

    我的休眠有一些问题 OneToMany映射 就像这里一样 Entity Table name albums SequenceGenerator name ALBUMS SEQ sequenceName albums seq allocati
  • 将 Python 内置类型替换为自定义类型

    是否可以用自定义类型替换一些内置的 python 类型 我想创建类似的东西 class MyInt object builtin int MyInt x 5 您似乎在问是否可以覆盖输入时创建的类型literals 答案是不 你不能做到这样x
  • Android 应用程序仅为一项活动启用 NFC

    对于支持 NFC 的应用程序 是否可以仅针对 Android 中的一项活动启用 NFC 我读过这个 仅从特定活动中读取 NFC 标签 但设备仍在扫描应用程序所有活动的标签 EDIT
  • 将指标从 telegraf 发送到 prometheus

    我在跑prometheus and telegraf在同一主机上 我正在使用一些输入插件 输入 cpu 输入 ntpq 我已经配置为prometheus client输出插件将数据发送到prometheus 这是我的配置 outputs p
  • 带有按名称调用参数的函数文字

    如何在 scala 中定义带有按名称调用参数的匿名函数 我尝试了以下方法 val fun x Boolean y gt Int gt if x y else 0 这适用于按值调用 y 但不适用于按名称调用 为什么 这是可以做到的 但方式略有
  • 静态、常量和只读字段的内存分配在哪里?

    我已经在程序中使用了这三个字段 并得到了用法上的差异 但我有点困惑这些字段存储在哪里 是在数据段 堆栈还是堆 还是代码段 static int a const int b 1235 readonly int c 在ILDASM中字段描述如下
  • 什么是顶级 const 限定符?

    什么是constC 中的 顶级 限定符是什么意思 那么其他级别是什么 例如 int const i int const i int const const i 顶级 const 限定符影响对象本身 其他的都只是 与指针和参考文献相关 他们不
  • 如何从 Maven 项目外部链接源?

    在 Maven 中 是否可以从项目文件夹外部链接其他依赖的 java src 以便当我们构建主包时 maven 可以将此类类包含到最终的 jar 中 就像我们可以将任何源文件夹链接到 Eclipse 中的项目并且 Eclipse 将其视为常
  • 读取以 null 结尾的字符串

    我正在从二进制文件读取字符串 每个字符串都以 null 结尾 编码为UTF 8 在 python 中 我只是读取一个字节 检查它是否为 0 将其附加到字节数组 然后继续读取字节 直到看到 0 然后我将字节数组转换为字符串并继续 所有字符串均
  • 如何在 KNPMenuBundle 中将“当前”类更改为“活动”类

    我想知道 将 当前 类更改为 活动 以便 Bootstrap 能够正确使用它的最佳方法是什么 我考虑过复制并覆盖 knp menu html twig 但我认为这不是最好的方法 无论如何 这样做更好吗 要在所有应用程序中应用默认选项 您可以
  • bash 命令是否可以在上一个命令的结果之前继续执行?

    当从 bash 脚本运行命令时 bash 是否总是等待上一个命令完成 还是只是启动命令然后继续执行下一个命令 即 如果从 bash 脚本运行以下两个命令 事情可能会失败吗 cp tmp a tmp b cp tmp b tmp c 是的 如
  • ExecuteReader 需要一个打开且可用的连接。连接的当前状态已关闭

    好吧 我在本周早些时候询问了这个错误 并得到了一些非常有用的答案 毫无疑问 自从我开始遵循这些建议以来 情况已经有了很大的改善 但是 现在我使用 正确 的最佳实践方法来访问数据库 我仍然在某些函数上遇到此错误 并且无法让它在该块中消失 这是
  • 如何在 Java 中将 .js 文件加载到 Rhino 上下文中

    这是我的情况 我可以访问 Java 类中的 Rhino Context 对象 我想读入一堆 js 文件并将它们传递到 Rhino 上下文以对它们进行评估 我对在脚本上下文中使用 js 文件中的函数并不真正感兴趣 而只是对在 js 文件中声明